archlinux的LAMP服务设置



archlinux的LAMP服务设置。archlinux的LAMP服务设置,又有些变动。近日恰有事要调试一点儿网络程序,结果发现archlinux的apache服务器根本没法用了!我自以为轻车熟路很快就可以配置好这服务器,结果搞了半天也没搞好。无奈之下只得拿出钻牛角精神,先删掉httpd,再重装一遍,然后开始细致地配置LAMP,结果还是发现有些配置项与过去有些变动,所以此处记录下来,以便于将来要使用时查询。

1、安装没有变化,还是如下命令:
# pacman -S apache php php-apache mysql

2、先启动Apache试试看:
# systemctl start httpd
Apache应该已经在运行了。用浏览器访问一下试试http://localhost/
没出错的话就一切OK,如果得到403错误,则进入/etc/httpd/conf/httpd.conf,将如下行:
Include conf/extra/httpd-userdir.conf
给注释掉,然后再重新启动Apache试试看。

# systemctl stop httpd
# systemctl start httpd

上面这两句分别是停止httpd服务与重启httpd服务,后面一边修改配置文件,一边还得不停地停止与重启,已检查配置文件是否生效,所以这里先给出这两句命令。若已经将httpd注册为了系统服务,则可运行下面命令让其重启:

# systemctl status httpd.service

3、确保上述Apache运行正常之后,再将其加为系统服务,让其随开机自动启动httpd进程。
# systemctl enable httpd.service

以下开始配置PHP。

4、首先确保正确安装了php-apache,否则在/etc/httpd/modules/下,libphp5.so文件不存在,则PHP不可能正常运行。

5、在/etc/httpd/conf/httpd.conf中的LoadModule列表,添加如下内容:
LoadModule php5_module modules/libphp5.so
注意,最好是放在整个列表的末尾,不然可能会有莫名其妙的错误。

6、将这一行放到Include列表的末尾:
Include conf/extra/php5_module.conf

7、确保部分中的如下行被取消注释:
TypesConfig conf/mime.types


8、将下行内容添加到/etc/httpd/conf/mime.types中:
application/x-httpd-php5               php php5
若未添加此行,则无法正确解析PHP脚本;

9、测试PHP:在/srv/http/中创建a.php文件,在其中写入:
 ?  php    phpinfo   ( )  ;    ? > (为防止众所周知的“吞代码”,左边这行单词间的间距加了空格。)

测试是否正常:http://localhost/a.php
如果PHP代码没有正确执行则需要检查上述步骤是否正确。

10、如果检查之后,代码仍然不能正常解析,则尝试如下方法:
在httpd.conf中的区块中加入:
AddHandler application/x-httpd-php .php .shtml
如此,应该已经正常啦~~~,如果还是不正常,不能正确解析PHP脚本,则应该是上述步骤中的某步出了错,所以需要细心检查。

11、配置PHP的其它几个细节问题
(1)由于需要使用PhpMyAdmin,所以必须使用mcrypt模块,安装php-mcrypt,并且取消/etc/php/php.ini中extension=mcrypt.so的注释:
  extension=mcrypt.so

(2)如果需要解析shtml或者phtml页面,则在/etc/httpd/conf/extra/php5_module.conf中将shtml与phtml添加到脚本处理列表中:
    (位置在配置文件的(代码被吞 <  IfModule dir_module  > ) 模块)
   DirectoryIndex index.php index.phtml index.html index.shtml index.phtml

(3)由于apache的版本到2.4之后,对模块的启动方式有些改变,所以正确解析PHP还需要下面两个步骤:
     a、禁用event启动模式:注释掉这句,或者直接删掉这句:
         #LoadModule mpm_event_module modules/mod_mpm_event.so

     b、启用prefork启动模式:加入这行:
         LoadModule mpm_prefork_module modules/mod_mpm_prefork.so

(4)由于我们还需要使用Mysql,所以还得禁用或注释掉下面这句:
        #LoadModule unique_id_module modules/mod_unique_id.so

(5)为启用Mysql,在/etc/php/php.ini中,取消如下三行中任意一行的注释,当然,要明确知道启用的模块对编程的影响:
       ;extension=pdo_mysql.so
       ;extension=mysqli.so
       ;extension=mysql.so
     然后添加上监控的端口:3306 以及 Mysql服务器的地址(通常是本机):127.0.0.1

12、用PHP脚本上传文件时,修改其默认支持的文件的大小:
   在php.ini里面修改如下两行即可:
   upload_max_filesize = 300M
   post_max_size = 280M
   下面这行也可适应调大一点,比如:
   memory_limit = 40M

   至此, Apache服务器环境设置完毕,可以开始调试我的站点脚本啦~~~~~