linux安装nginx,mysql, php

Talk is cheap, show me the code.

我是以root用户登录安装的。

一、安装nginx

首先下载nginx包 nginx-1.10.2.tar.gz,可以直接从nginx官网下载:http://nginx.org/en/download.html

需要预安装一些工具:pcre,pcre-devel, openssl, openssl-devel, gcc,g++,zlib, zlib-devel.
命令:

yum install gcc-c++
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel

上传下载好的nginx包至linux目录下,我是放到/usr/local 目录下,解压缩得到 nginx-1.10.2 目录:

tar zxvf nginx-1.10.2.tar.gz

注意千万不要将nginx-1.10.2重命名为nginx,因为安装完成后,程序会自动在/usr/local目录下创建一个nginx目录,这个nginx目录就是nginx启动配置的目录。

当前所在目录为 /usr/local, 进入nginx-1.10.2目录,开始安装:

cd nginx-1.10.2
./configure
make
make install

如果上面把解压缩后的nginx-1.10.2重命名为nginx那么这里make install就会报错”make [*] install error 2”。

如果都成功执行完,那么nginx就安装成功了,在/usr/local目录下会自动生成了nginx目录。

nginx的启动:

/usr/local/nginx/sbin/nginx

nginx查看是否启动:

ps -ef | grep nginx

nginx的重启:

/usr/local/nginx/sbin/nginx -s reload

nginx的关闭:

ps -ef | grep nginx   //首先查找到nginx-master的pid 比如说是20544
kill 20544    //杀死nginx-master进程,worker进程也会自动死亡

启动nginx后,在浏览器输入 http://linuxIP:80 即可看到nginx的html目录下index.html中的内容,说明安装成功。

二、安装mysql

linux自动安装好了mysql,后续动手实践过再记录。

三、安装php

首先下载好php和php-fpm包:

wget http://blog.s135.com/soft/linux/nginx_php/php/php-5.2.14.tar.gz
wget http://blog.s135.com/soft/linux/nginx_php/phpfpm/php-5.2.14-fpm-0.5.14.diff.gz

将下载好的 php-5.2.14.tar.gz 和 php-5.2.14-fpm-0.5.14.diff.gz 放到 /usr/local 目录下。

安装php需要一些预安装的包:libxml2和libxml2-devel包

yum install libxml2
yum install libxml2-devel -y

安装成功后,进入 /usr/local目录,解压缩php-5.2.14.tar.gz得到php-5.2.14, 不要重命名, 然后进行安装:

cd /usr/local
tar zxvf php-5.2.14.tar.gz
gzip -cd php-5.2.14-fpm-0.5.14.diff.gz | patch -d php-5.2.14 -p1
cd php-5.2.14
./configure  --prefix=/usr/local/php --enable-fastcgi --enable-fpm
make
make install

然后,配置php

cp php.ini-dist /usr/local/lib/php.ini

最后同过 php-fpm 启动fastCGI进程,因为php启动不能用root账户来启动,否则会报错,新建账户的命令如下:

useradd -g root lee     //新建用户lee,属于root组
passwd lee              //给lee加上密码
chown -R lee:root /usr/local/php  //将php的及其子目录全都赋予新用户lee权限
su lee                 //使用lee用户来启动fastCGI
/usr/local/php/sbin/php-fpm start   //启动fastCGI

安装php成功,但是还不能将网页请求转发给php进行处理,还需要将web服务器进行配置,将php请求转发给php进程进行处理。

补充说明:
1. 启动fastCGI的目的说明:启动fastCGI进程(实际是php-cgi进程,通过ps -ef|grep php可以看到),使php解释器能监听127.0.0.1:9000的请求。当web服务器比如nginx收到来自网络的.php请求后,因为nginx本身只是静态网页html的解释器,不支持php、jsp、asp等动态网页的解析,但是当nginx.conf配置好支持php后,就可以将.php请求转发到127.0.0.1:9000,php解释器监听到请求后再解释执行,相当于nginx只作了代理转发服务器。(nginx配置支持php在下面会讲到)
2. php-fpm的其他命令:/usr/local/php/sbin/php-fpm start/stop/quit/reload/restart/logrotate 。logrotate是重新启动log日志;reload是个很重要的参数,它可以在PHP的FastCGI进程不中断的情况下重新加载改动过的php.ini,因此通过php-fpm可以平滑变更FastCGI模式下的PHP设置。

四、配置nginx支持php

nginx是root账户安装的,首先切换至root账户。

su root

进入nginx目录,更改nginx.conf的配置:

cd /usr/local/nginx/conf
vim nginx.conf

对应项更改为如下:

location / {
    root   /usr/local/nginx/html;
    index  index.html index.htm index.php;
}
location = /50x.html {
    root   /usr/local/nginx/html;
}
location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    #fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
    include        fastcgi_params;
}

配置完毕,重启nginx和fastCGI即可:

su root
/usr/local/nginx/sbin/nginx -s reload
su lee
/usr/local/php/sbin/php-fpm restart

在浏览器输入 http://linuxIP:80 即可访问到nginx的html下的index.html内容。

验证nginx可以相应php请求:

cd /usr/local/nginx/html
vim info.php 

info.php的内容为:

<?php
    phpinfo();
?>

在浏览器输入 http://linuxIP:80/info.php 可以看到php的首页内容。

php 5.6 下载链接:

wget  http://www.php.net/distributions/php-5.6.3.tar.gz

php-fpm是php的一个补丁,通过与php源代码放在一起编译就能安装,起到fastCGI管理器的作用,编译是带上 –enable-fpm 即可。

php5.6安装方法:

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-fpm-user=www --with-fpm-group=www  --enable-fpm --enable-opcache --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --disable-fileinfo   --with-iconv-dir=/usr/local  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml   --disable-rpath --enable-bcmath --enable-shmop --enable-exif --enable-sysvsem --enable-inline-optimization --with-curl   --enable-mbregex --enable-mbstring  --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash  --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp --with-gettext --enable-zip --enable-soap --disable-ipv6  --disable-debug 

开启 opcache,可以缓存opcode, –disable-debug –disable-ipv6,关闭 debug ipv6,都可以提高php性能。

make
make install

配置php.ini:可以根据/usr/local/php-5.6.3/php.ini-production生成一个php.ini,拷贝到/usr/local/lib/目录下。

配置php-fpm.conf:根据/usr/local/php/etc/php-fpm.conf.default生成一个/usr/local/php/etc/php-fpm.conf。

然后启动php-fpm即可:

/usr/local/php/sbin/php-fpm

创建php-fpm服务(可选,更方便)

cp /usr/local/php-5.6.3/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on

创建php-fpm服务完毕,启动如下:

/etc/init.d/php-fpm start/restart/stop...

FAQ

1.安装php时报错libmcrypt安装失败。(下面两个必须都安装)

wget http://mirrors.hust.edu.cn/epel/6/x86_64/libmcrypt-2.5.8-9.el6.x86_64.rpm
rpm -Uvh libmcrypt-2.5.8-9.el6.x86_64.rpm
wget http://mirrors.hust.edu.cn/epel/6/x86_64/libmcrypt-devel-2.5.8-9.el6.x86_64.rpm
rpm -Uvh libmcrypt-devel-2.5.8-9.el6.x86_64.rpm

2.启动php-fpm时报错:

启动时报错/usr/local/php/etc/目录下没有php-fpm.conf文件,安装后需要进入/usr/local/php/etc/下从php-fpm.conf.default手动设置一个php-fpm.conf的配置文件。

启动时不能使用root用户,但可以是root用户组下的其他用户,否则会报错不能用root启动的错误。

如果报错’user’ directive is ignored when FPM is not running as root,只需要注释掉/usr/local/php/etc/php-fpm.conf中的user和group的设置即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值