如何在CentOS 6/Fedora上安装LEMP(Linux, nginx, MySQL, PHP )

关于Lemp

LEMP是驱动web服务器的一组软件,为Linux, nginx(发音为Engine x ), MySQL, PHP 这几个软件首字母的缩写。

第一步 --- 安装所需的软件源

所有的软件我们都使用Yum安装,但由于nginx和php-fpm并不在CentOS官方源里,所以我们需要自己手动添加到服务器上。添加软件源的命令如下: rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

第二步 --- 安装MySQL

接下来,我们开始逐个安装各个服务器软件,首先安装MySQL及依赖软件
yum install mysql mysql-server
安装完成后,运行下面的命令重启MySQL:
/etc/init.d/mysqld restart
运行下面的命令可以对MySQL进行设置
/usr/bin/mysql_secure_installation
运行后,会提示要你输入当前root密码。如果在安装过程你没有设置root密码,只需按下一空格键就好了.显示如下:

Enter current password for root (enter for none): OK, successfully used password, moving on...

然后,命令终端会问你是否需要设置root密码,确认是,然后输入你要设置的密码。接下来MySQL会问一系列问题,你只需按回车键就可又了。设置完了,MySQL会自动重新加载配置。显示如下:

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MySQL to secure it, we'll need the current
password for the root user. If you've just installed MySQL, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

Set root password? [Y/n]

第三步 – 安装nginx

跟安装MySQL一样,我们使用yum来安装nginx yum install nginx nginx安装成功后不会自动启动,在终端手动输入下面的命令: /etc/init.d/nginx start 在浏览器输入你的ip地址确认nginx是否运行,如果不知道ip地址,运行下面命令查看 ifconfig eth0 | grep inet | awk '{ print $2 }'

第四步 – 安装php

php-fpm在REMI源里,默认这个源没有开启。因此我们要在yum命令里加--enablerepo=来启用: yum --enablerepo=remi install php-fpm php-mysql

第五步 – 配置php

我们只需要在php.ini改动一个选项即可
vi /etc/php.ini
找到 cgi.fix_pathinfo=1,把1改为0 cgi.fix_pathinfo=0 设为1的话,php解释器会尽可能执行所有接近的文件,这个存在安全风险。
如果值是0,解释器只会执行完全匹配路径的文件,这样更安全一些。修改后保存。

第六步 – 配置nginx

打开默认的nginx配置文件:
vi /etc/nginx/nginx.conf
把worker processes的值改为4.保存退出。

现在我们来配置nginx虚拟主机。为了更简洁点,我们把虚拟主机的相关配置放在不同的目录。
vi /etc/nginx/conf.d/default.conf

配置文件应该包括下面的内容,下面我会提到作了哪些改动

server {
listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6

root /var/www/htdocs; ##网页文件根目录
index index.php index.html index.htm;
client_max_body_size 5M;
# Make site accessible from http://localhost/

location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.php?q=$uri&$args;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}

location /doc/ {
alias /usr/share/doc/;
autoindex on;
allow 127.0.0.1;
deny all;
}

# Only for nginx-naxsi : process denied requests
#location /RequestDenied {
# For example, return an error code
#return 418;
#}

#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

# With php5-cgi alone:
fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;

fastcgi_index index.php;
include fastcgi_params;
}

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}

可以直接拷贝使用,但需要先建立/var/www/htdocs这个目录.下面是一些改动说明:
在index选项加上index.php 把根文目录改为/usr/share/nginx/html;
去掉"location ~ \.php$ {"的注释
把nginx读取文件的根目录改为/var/www/htdocs;
修改 fastcgi_param,让php解释器能够找到存在根文件目录的php脚本文件 保存退出。
再打开php-fpm配置文件

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 service php-fpm restart

第七步 – 创建一个php测试文件

到此所有软件就都安装完成了,我们用phpino()这个命令通过浏览器来看下安装了哪些组件 打开文本编辑器 vi /usr/share/nginx/html/info.php 加上下面的代码: <!--?php phpinfo(); ?--> 保存退出 重启nginx让所有配置生效: service nginx restart 在浏览器输入ip地址看是不是和下面的一样:

第八步 – 设置开机自启

安装配置差不多完成了,现在我们设置mysqld,nginx和php-fpm随系统启动


chkconfig --levels 235 mysqld on

chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on

添加新评论

个人信息
评论内容
提交该页面即表示您接受Mollon的隐私政策