微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CentOS安装配置nginx和php

今天买了台阿里云服务器用于日常开发测试(新人9块钱半年)。系统版本CentOS 6.5 64位。

首先安装Nginx

yum install Nginx

参考文档:

在CentOS 6上搭建LNMP环境

安装完成后,使用 service Nginx start 命令启动Nginx出现错误

Nginx: [emerg] socket() [::]:80 Failed (97: Address family not supported by protocol)

解决方法见:

nginx: [emerg] socket() [::]:80 failed (97: Address family not supported by protocol)

 

编译安装PHP-5.6.29:

./configure --prefix=/usr/local/PHP --enable-fpm --enable-debug

(源码安装建议使用 -- prefix 指定安装路径,一方面不会污染系统目录,另一方面卸载方便。)

提示出错:

configure: error: xml2-config not found. Please check your libxml2 installation.

看来缺东西了:

yum install libxml2-devel

继续执行:

./configure --prefix=/usr/local/PHP --enable-fpm --enable-debug
make && make install

安装成功。

安装成功后续步骤:

#复制PHP.ini
cp PHP.ini-development /usr/local/PHP/lib/PHP.ini
cp /usr/local/PHP/etc/PHP-fpm.conf.default /usr/local/PHP/etc/PHP-fpm.conf
#运行PHP-fpm
/usr/local/PHP/sbin/PHP-fpm
#将PHP命令加入到全局
vi /root/.bash_profile 
#将/usr/local/PHP/bin 加到后面,用:隔开
PATH=$PATH:$HOME/bin:/usr/local/PHP/bin
#重启
source /root/.bash_profile

参考资料:

centos6.5安装php开发环境

还有一个问题:由于PHP是源码安装,因此PHP-fpm不会加入系统服务。

解决办法:

// 进入源码安装目录
cp ./sapi/fpm/init.d.PHP-fpm /etc/init.d/PHP-fpm
chmod +x /etc/init.d/PHP-fpm

现在就可以通过service命令操作PHP-fpm了。

参考文章

Nginx和PHP-FPM的启动/重启脚本

接下来还需要做些配置,让Nginx能够解析PHP

首先我们给系统添加一个新用户 www。

useradd www;
groupadd www;

修改Nginx配置文件(/etc/Nginx/Nginx.conf)的user项,

user www www;

修改PHP-fpm的配置文件(/usr/local/PHP/etc/PHP-fpm.conf),这里主要是修改其中的user、group项。我直接贴下我的配置好了:

[global]
pid = run/PHP-fpm.pid
error_log = log/PHP-fpm.log
log_level = notice
[www]
user = www
group = www
listen = 127.0.0.1:9000
listen.owner = www
listen.group = www
listen.mode = 0660
pm = static
pm.max_children = 1
pm.start_servers = 10
pm.min_spare_servers = 5
pm.max_spare_servers = 20

为了测试Nginx能否解析PHP,我们在 /usr/share/Nginx/html 目录下建立一个文件index.PHP内容

<?PHP
    echo "this is PHP index file";
?>

(这个目录下还有个文件index.html,它就对应我们常见的Nginx欢迎页)

最后还要做一件事就是修改Nginx配置文件。你可以直接修改Nginx.conf文件,也可以修改conf.d目录下的default.conf文件,当然也可以自己新建文件,只要Nginx能够加载到就可以。

本文直接修改conf.d目录下的default.conf文件

核心内容如下:

server {
    listen       80;
    server_name your_server_name;
    root         /usr/share/Nginx/html;
    index index.html index.htm index.PHP;

    location ~ \.PHP$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.PHP;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

到这里,所有工作就完成了。

(如果将index.PHP放在其他目录,要确保www用户能够访问到这个文件)

浏览器输入 your_server_name/index.PHP,就能显示我们刚才创建的index.PHP文件中的内容了。

转载于:https://www.cnblogs.com/gattaca/p/6234534.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐