<服务>LAMP下的PHP和LAMP

时间:Nov. 23, 2016 分类:

目录:

LAMP下的PHP

php编译和使用方面依赖的软件包

yum install -y zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel 大多数库不安装php也是可以编译成功的,但是因为php产生网页的时候会产生好多好多的图片之类的,就会导致这些服务无法显示

手动安装libiconv

[root@why-2 ~]# tar -zxvf libiconv-1.14.tar.gz
[root@why-2 libiconv-1.14]# cd libiconv-1.14
[root@why-2 libiconv-1.14]# ./configure --prefix=/usr/local/libiconv-1.14
[root@why-2 libiconv-1.14]# make && make install

编译安装PHP

[root@why-2 ~]# tar xf php-5.3.27.tar.gz 
[root@why-2 ~]# cd php-5.3.27
[root@why-2 php-5.3.27]# ./configure --prefix=/usr/local/php5.3.27 --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-xmlrpc --with-openssl --with-zlib --with-freetype-dir --with-gd --with-jpeg-dir --with-png-dir --with-iconv=/usr/local/libiconv-1.14 --enable-short-tags --enable-sockets --enable-zend-multibyte --enable-soap --enable-mbstring --enable-static --enable-gd-native-ttf --with-curl --with-xsl --enable-ftp --with-libxml-dir

命令解析

./configure \
--prefix=/usr/local/php5.3.27 \
--with-apxs2=/usr/local/apache/bin/apxs \ #生成apache的php模块,这个路径一定要正确
--with-mysql=/usr/local/mysql \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv-1.14 \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir

也可以通过./configure -help查找参数

可能会遇到的错误

如果遇到openssl错误,需要安装openssl-devel libxslt错误,需要安装libxslt-devel

继续编译

[root@why-2 php-5.3.27]# make && make install
[root@why-2 php-5.3.27]# ln -s /usr/local/php5.3.27/ /usr/local/php
[root@why-2 php-5.3.27]# ll /usr/local/apache/modules/
总用量 28864
-rw-r--r-- 1 root root     9194 11月  2 12:15 httpd.exp
-rwxr-xr-x 1 root root 29541045 11月  2 23:10 libphp5.so

libphp5.so为编译好的apache模块,php编译完成后libphp5直接写入apache配置文件中,当访问apache服务的时候,如果需要是php请求就由libphp5模块进行解析。

php配置

[root@why-2 php-5.3.27]# ll php.ini-*
-rw-r--r-- 1 101 101 69606 7月  11 2013 php.ini-development      #开发配置
-rw-r--r-- 1 101 101 69627 7月  11 2013 php.ini-production       #生产配置
[root@why-2 php-5.3.27]# cp php.ini-production /usr/local/php/lib/php.ini

区别是开发配置error为on,生产配置error为off

LAMP

编译安装apache,mysql可以看前边的博客。

配置apache

[root@why-2 ~]# cd /usr/local/apache
[root@why-2 apache]# vi conf/httpd.conf
ServerName 127.0.0.1:80

添加压缩和php

    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    AddType application/x-httpd-php .php .phtml
    AddType application/x-httpd-php-source .phps

不使用默认用户名

修改为

User whylamp
Group whylamp

默认主页

修改为

<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>

创建apache用户

[root@why-2 apache]# useradd whylamp -s /sbin/nologin -M
[root@why-2 apache]# id whylamp
uid=502(whylamp) gid=502(whylamp) 组=502(whylamp)

启动apache服务

[root@why-2 apache]# /usr/local/apache/bin/apachectl -t
Syntax OK
[root@why-2 apache]# /usr/local/apache/bin/apachectl graceful

配置站点目录

/usr/local/apache/conf/extra/httpd-vhosts.conf里边也配置好的站点目录
<VirtualHost *:80>
    ServerAdmin 93216193@qq.com
    DocumentRoot "/var/html/www"
    ServerName www.why.cn
    ServerAlias why.com
    ErrorLog "logs/www.why.com-error_log"
    CustomLog "|/usr/local/sbin/cronolog  /var/log/www.why.cn/www.why.cn_%Y%m%d.log" combined
</VirtualHost>

添加主页php文件

[root@why-2 www]# vi /var/html/www/index.php
<?php
  phpinfo();
?>

验证Apache和PHP

进入www.why.cn 证明apache和php连接正常

主页php文件添加MySQL连接

验证Apache,MySQL和PHP

证明apache,mysql个和php连通。