Archlinux LAMP和Nginx环境搭建

用Archlinux搭建个全能的环境出来,其实很简单,不过也比较繁琐,所以记录一下。

安装LNMP软件包

pacman -S apache mysql php php-apache php-gd php-mcrypt phpmyadmin openssh

解释下吧,apache mysql php php-apache都不用说了,最基本的软件包,其中php-gd是php的gd图形库,php-mcrypt是phpmyadmin的需求的一个加密函数库,openssh是ssh软件包,用来使用ssh软件来操作。

安装上之后先修改下"/etc/hostname"和“/etc/hosts”的主机名,因为apache启动的时候要解析,如果不正确那启动服务很慢,然后开始配置apache和php支持。

apache支持php

apache的配置文件/etc/httpd/conf/httpd.conf(编辑前线备份)

添加"LoadModule php5_module modules/libphp5.so"和"Include conf/extra/php5_module.conf"到指定位置,然后重启启动下httpd服务就可以支持php了。

启动和开机自启动的命令如下:

systemctl enable httpd
systemctl start httpd
systemctl enable mysqld
systemctl start mysqld

重启的话就将start修改成restart就可以了,另外apache默认路径是"/srv/http",建立phpinfo文件测试。其次修改php.ini启用该启用的php模块。

安装phpmyadmin

cp /etc/webapps/phpmyadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phpmyadmin.conf

复制一份配置文件到apache配置文件目录,然后添加"Include conf/extra/httpd-phpmyadmin.conf"到httpd.conf文件,之后如果需要外部访问,请编辑/usr/share/webapps/phpMyAdmin下的.htaccess将"deny from all"注释掉,最后重启下httpd服务就可以使用http://lamp/phpmyadmin访问。

开启https

cd /etc/httpd/conf
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

然后修改httpd.conf文件将"Include conf/extra/httpd-ssl.conf"前的井号去掉。

安装配置Nginx

pacman -S nginx php-fpm
systemctl stop httpd
systemctl enable nginx
systemctl start nginx
systemctl enable php-fpm
systemctl start php-fpm

停止apache然后启用nginx,之后是配置nginx支持php,修改nginx配置文件(/etc/nginx/nginx.conf):

gzip  on;
        location / {
            root   /srv/http;
            autoindex on;
            index  index.html index.htm index.php;
        }
        location ~ \.php$ {
            root           /srv/http;
            fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME /srv/http$fastcgi_script_name;
            include        fastcgi_params;
        }

就贴上修改过的内容,其他的就不贴了。

nginx的phpmyadmin配置

ln -s /usr/share/webapps/phpMyAdmin/ /srv/http/phpmyadmin
chown -R http:http /usr/share/webapps/phpMyAdmin/

修改php.ini然后再open_basedir中添加":/usr/share/webapps/:/etc/webapps/",然后:

systemctl restart nginx

最后在nginx.conf文件中添加:

server {
         location /phpmyadmin {
                 root    /srv/http/phpmyadmin;
                 index   index.html index.htm index.php;
         }
 
         location ~ \.php$ {
                 root            /srv/http/phpmyadmin;
                 fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
                 fastcgi_index   index.php;
                 fastcgi_param   SCRIPT_FILENAME /srv/http/phpmyadmin/$fastcgi_script_name;
                 include         fastcgi_params;
         }
 }

最后如下图:

期间在配置nginx的时候忘了重启php-fpm,所以一直出现问题,之后看了日志才最后明白过来。

没有评论: