关于LEMP
LEMP架构是一组广泛应用的WEB服务器开源软件组合,分别对应Linux,nginx(发音 Engine x),MySQL,和PHP。由于基于Centos 6发行版,我们不用考虑linux部分,只需要安装剩下的几个组件。
步骤一 安装必须的软件源
我们将通过yum安装所有我们需要的软件。但是,因为nginx并不能从默认的软件源获取,所以我必须安装epel 软件源。
sudo yum install epel-release
步骤二 安装Mysql
接下来的步骤是开始安装各个软件,首先我们从MySQL及其依赖开始。
sudo yum install mysql-server
一旦安装流程完成,重启MySQL:
sudo /etc/init.d/mysqld restart
你能通过以下命令来完成一些MySQL的安全配置
sudo /usr/bin/mysql_secure_installation
根据提示,会让你输入当前的root密码,由于你刚刚安装MySQL,并没有设置任何密码,所以这里直接回车跳过即可。
Enter current password for root (enter for none):
OK, successfully used password, moving on...
然后提示会问你是否要设置root密码。输入y,根据提示完成密码设置流程。
CentOS通过问你一系列的Yes or No 的问题来自动处理你的MySQL配置。
对于多数情况来说,只要一直输入Y即可。最后MySQL会重启以应用新的配置。
步骤3 安装nginx
就像MySQL,我们会通过yum在Centos 6安装nginx:
sudo yum install nginx
然后通过一下命令启动nginx
sudo /etc/init.d/nginx start
你可以通过IP方式访问自己服务器来确认nginx是否被正确安装
步骤四 安装PHP
php-fpm是在REMI源里的,所以我们首先要开启REMI源,然后安装PHP和php-fpm。
sudo yum --enablerepo=remi install php-fpm php-mysql php-cli php-mcrypt
步骤五 配置PHP
我们将改动PHP配置的文件中的小地方:
sudo vi /etc/php.ini
找到“cgi.fix_pathinfo=1”那行,将1变成0.
cgi.fix_pathinfo=0
如果该选项为1,将引入一个危险的漏洞。所以建议关闭该功能。
步骤六 配置nginx
打开nginx配置文件:
sudo vim /etc/nginx/nginx.conf
将worker processes 加到4,然后保存退出。
现在我们需要为nginx配置静态主机了。
为了让默认的配置文件更清晰,默认的静态主机配置文件在另外的文件中:
sudo vi /etc/nginx/conf.d/default.conf
将配置文件编辑成如下内容:
#
# The default server
#
server {
listen 80;
server_name example.com;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
打开php-fpm的配置文件
sudo vi /etc/php-fpm.d/www.conf
将'user','group'的值从'apache'改成'nginx':
[...]
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
[...]
最后重启php-fpm
sudo service php-fpm restart