搞了一天,百度了各种文档,终于安装好了。之前用nginx1.8 + php5.6 开发完了才发现有问题。我的服务器用于微信开发,出现了这么一个问题:推送news消息时,一次推送,推送了2条消息,原因是thinkphp中的一个操作调用了两次。之后,各种修改,甚至用get提交到操作的方式 全在前端页面改成了post提交,但是,后来用微信自带的浏览器推送消息时,又出现问题了。我知道不是代码的问题,是php+nginx配置的问题,但是始终配置不好,尤其是重写,网上因也是五花八门。因此,直接卸载,安装apache+php。虽然apache性能没nginx好,但是,对于我这种小型网站根本没影响。
进入正题:
安装apache(2.4)服务器:
apache安装之前,需要安装APR、APR-Util和PCRE依赖包,因为apache是依赖于它们的。具体下载地址如下
APR和APR-Util:http://apr.apache.org/download.cgi
PCRE:http://sourceforge.net/projects/pcre/files/pcre
apache的官方下载地址为:http://httpd.apache.org/download.cgi
笔者下载的版本具体为,apache(httpd-2.4.25.tar.gz), apr(apr-1.5.2.tar.gz), apr-util(apr-util-1.5.4.tar.gz), pcre(pcre-8.36.tar.gz)。
在自己电脑上下载好,上传到服务器就行。我一般存在/root/oneinstack/src
.tar.gz解压命令:tar -zxvf +文件名 如:tar -zxvf apr-1.5.2.tar.gz ,解压到当前目录
1、安装apr
命令如下:
(1)cd apr-1.5.2
(2)./configure –prefix=/usr/local/apr 安装的目录
(3)make && make install
2.apr-util的安装:
命令如下:
(1)cd apr-util-1.5.4
(2) ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
(3)make && make install
3.pcre的安装:
命令如下:
(1)cd pcre-8.3.6
(2)./configure --prefix=/usr/local/pcre
(3)make && make install
4.安装apache2.4:
(1)cd httpd-2.4.25
(2)./configure --prefix=/usr/local/apache2.4
--enable-so-rewrite=shared
--with-mpm=prefork
--with-apr=/usr/local/apr (路径为apr的安装路径,下同)
--with-apr-util=/usr/local/apr-util
--with-pcre=/usr/local/pcre
如果执行出错 把这几句话写在一行,再试一试。
(3)make && make install
至此,apache就已经安装完成了,接下来就是启动和测试其是否启动成功了
执行命令:
/usr/local/apache2.4/bin/apachectl start
检查是否有apache进程
ps -ef|grep httpd
为了以后方便,可以把它添加到服务中去,将apachectl 拷贝到 /etc/init.d/httpd, 这样执行
service httpd start
就可以直接启动服务了
5、安装php
5.1 安装libxml2
安装php前需要安装libxml2
同样的道理,下载好libxml2-2.7.4.tar.gz 的压缩包上传到/root/oneinstack/src 并解压
命令:
(1)tar -zxvf libxml2-2.7.4.tar.gz
(2)cd libxml2-2.7.4
(3)./configure --prefix=/usr/local/libxml2
(4)make &&make install
5.2 安装php5.6.30
下载php-5.6.30.tar.gz上传到/root/oneinstack/src 并解压
tar -zxvf php-5.6.30.tar.gz
cd php-5.6.3 0
/configure
--prefix=/usr/local/php5630 (路径为需要安装php的路径)
--with-mysql=/usr/local/mysql (路径为已经安装好的mysql的安装路径)
--with-apxs2=/usr/local/apache2.4/bin/apxs (在有些教程写的是--with-apxs,这里写的是apxs2,2是版本2以上的就这样设置)
--with-libxml2=/usr/local/libxml2 (就是我们上面安装libxm2的路径)
make&&make install
6、配置apache
vim /usr/local/apache2.4/conf/httpd.conf
然后在LoadModule文本最后面添加
LoadModule php5_module modules/libphp5.so
(注意,在apache安装目录下,modules下有libphp5.so,这是 php安装 时添加进去的,如果没有,你需要重装下)
去掉#LoadModule rewrite_module modules/mod_rewrite.so 的‘#’ 后面重写做准备
添加这句话 AddType application/x-httpd-php .php
拷贝php.ini cp /root/oneinstack/src/php-5.6.30/php.ini-development /usr/local/php5630/lib/php.ini
保存,重新启动
service httpd start
测试php是否安装成功
写一个简单的php页面
<?php
phpinfo();
?>
保存到/usr/local/apache2.4/htdocs
执行结果为:
如果:/usr/local/php5630/lib/php/extensions/no-debug-zts-20131226 没有pdo.so 和pdo_mysql.so
Linux下PHP扩展pdo_mysql
1.进入PHP源码包ext/pdo目录 /root/oneinstack/src/php-5.6.30/ext/pdo
cd ext/pdo
2.执行/usr/local/php5630/bin/phpize[假设PHP的安装目录为/usr/local/php5630]
/usr/local/php/bin/phpize
3.配置扩展pdo
./configure
--with-php-config=/usr/local/php5630/bin/php-config
--enable-pdo=shared
4. make&&make install
成功则出现
Installing shared extensions: /usr/local/php5630//lib/php/extensions/no-debug-non-zts-20060613/
Installing header files: /usr/local/php5630//include/php/
Installing PDO headers: /usr/local/php5630//include/php/ext/pdo/
说明在/usr/local/php5630//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo.so文件
5.在php配置文件中加上
extension=”/usr/local/php56//lib/php/extensions/no-debug-non-zts-20060613/pdo.so”
扩展pdo_mysql同样的步骤,在
/root/oneinstack/src/php-5.6.30/ext/pdo_mysql下执行类似命令