Archlinux下配置PHP、nginx和apache

1. 首先安装nginx apache php php-apache php-fpm php-cgi php-gd php-mcrypt php-pgsql php-sqlite等软件包。

2. 编辑apache的配置文件/etc/httpd/conf/httpd.conf,将
    LoadModule mpm_event_module modules/mod_mpm_event.so   一行替换成 
    LoadModule mpm_prefork_module modules/mod_mpm_prefork.so ,否则apache启动会报如下的错:
    Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.
    然后在LoadModule dir_module modules/mod_dir.so之后的任意一行加入
    LoadModule php5_module modules/libphp5.so,如果需要是用php-fpm则不做这步;
    最后在Include的最后面加入 Include conf/extra/php5_module.conf 。
3. 编辑/etc/php/php.ini,首先设置 date.timezone=Asia/Chongqing ,然后设置 open_basedir= 一行,把自己想要的目录加进去(比如我的apache根目录/srv/http以及nginx的根目录/srv/nginx,最后把一些需要的extension前面的分号去掉。
4. 编辑/etc/httpd/conf/extra/php5_module.conf,加入在DirectoryIndex一行中加入index.phtml,例如:
    DirectoryIndex index.php index.phtml index.html 
5. 按照上面的设置已经可以让apache解析PHP了,如果要使用php-fpm的话,删除刚才加入的 LoadModule php5_module modules/libphp5.so ,在/etc/httpd/conf/httpd.conf的末尾加入:
<FilesMatch \.php$>
    SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

    然后 systemctl restart httpd.service php-fpm.service 重启服务即可。

6. 编辑/etc/nginx/nginx.conf,首先把user一行改成 user http http ,然后修改server一栏如下:

server {
    listen       80;
    server_name  localhost;
    root /srv/nginx;
    location / {
        index  index.html index.htm index.php;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}    

    然后 systemctl restart nginx.service php-fpm.service 重启服务即可。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。