首先安装Apache服务器
1. 下载源码包
http://httpd.apache.org/download.cgi#apache24
2. 上传到服务器, 解压
tar zvxf httpd-XX.tar.gz
3. 安装 apr和apr-util(如果已安装,可直接看4)
下载apr与apr-util , 地址 : http://apr.apache.org/
解压 apr , 修改解压好的目录名, 不要带版本号(官网上说的), 进入解压目录,执行
./configure (如果没有改解压目录名, 则需要指定安装路径 --prefix=/xxx/apr)
make
make install
解压apr-util,修改目录名(去掉版本号),进入解压目录, 执行
cd apr-util
ls
./configure --with-apr=/web/servers/apr(为apr安装路径)
4. 进入到解压目录, 执行命令
./configure --prefix=PREFIX (PREFIX为你要安装的路径)
make
make install
5. 将Apache安装为服务
找到安装目录下的 apachectl , 拷贝到init.d下
cp /usr/local/httpd/bin/apachectl /etc/rc.d/init.d/httpd
在init.d的httpd链接文件中第2行添加如下注释,并wq保存退出
#chkconfig:35 61 61
#description:Apache
此时可以使用 service httpd start 开启 apache 服务器, 使用 chkconfig --list 可以查看服务列表
6. 简单配置 httpd.conf 文件
Listen 8080 修改为自己需要监听的端口
LoadModule php5_module modules/libphp5.so 加上对php的支持, 如果安装的时候没有配置的话, 现在手动加上
AllowOverride None 改为 AllowOverride All (所有的,虽然不知道为什么,ps:我是小白),
加上下面两句(当时忘了加了, 结果访问的时候直接将php文件给下载下来了)
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
安装 PHP
两个参数分别是php的安装路径和apache安装路径
5. 简单修改 php.ini
将源码包下的 php.ini-development 拷贝到安装路径下的 lib 目录下, 并改名为 php.ini
配置参数可以参考网上的
安装php扩展
先安装 curl(因为我在windows下被他折磨的最惨, 当时第一次接触php)
1. 进入到php源码目录下的ext, 里面都是扩展
2. 进入curl目录
cd curl/
/web/php/php5.6/bin/phpize (此路径是安装路径, 跟源码路径不是一个)
./configure --with-php-config=/web/php/php5.6/bin/php-config (报错, 需要安装curl-devel)
yum install curl curl-devel
再执行上面的两条命令 , 就会发现在安装路径下的lib目录下多了extensions/no-debug-zts-20131226/curl.so., 再配置一下php.ini就可以了
本以为其他扩展也一样手到擒来, 结果现实是骨感的, 安装mysql扩展的时候直接把我整崩溃了
在mysql/目录下执行上面类似的命令时, 报错了, 具体错不说了, 反正就是error, 然后在网上找到说安装mysql扩展需要用到mysql数据库, 需要这样写命令
./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysql=/usr/lib/mysql/ 后面的是mysql的安装路径
但是还是报错, 说是Cannot find MySQL header files under /usr/include/m, 然后就是疯狂的找资料, 最后有人说需要安装mysql开发包, 因为之前服务器上用yum装过mysql(我是做java的), 就按照网上的试了试
yum install php-mysql
执行上面的命令, 还是报上面的错, 不知道什么原因, 后来一发狠, 你不是在lib下找不到吗, 我直接给你写到上级目录, 然后执行, 发现生成了mysql.so文件, 莫名其妙啊
./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysql=/usr
make
make install
本以为mysql扩展都成功了, mysqli应该一样, 结果又出幺蛾子了, 安装的时候先是跟安装mysql扩展一样的命令, 结果报错, 在网上找说是要用mysql-config
就用了 find / -name mysql_config, 找到了路径
执行
phpize
./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysqli=/usr/lib/mysql/mysql_config
make
结果出现了 找不到 ext/mysqlnd/mysql_float_to_double.h, 然后就去源码包去找, 纳尼, 竟然找到了, 还说没有, 但是就是报错, 得, 你是大爷,接着找解决方法, 突然想到执行命令是在mysqli, 会不会是以此为根目录的, 然后我就把源码包的文件目录结构在mysqli里又建了一遍, mysqli/ext/mysqlnd/mysql_float_to_double.h,
然后执行
phpize
./configure --with-php-config=/web/php/php5.6/bin/php-config --with-mysqli=/usr/lib/mysql/mysql_config
make
make install
苍天啊, 大地啊, phpinfo()终于打印出来了
安装 pdo_mysql 扩展的时候要加上 --with-pdo-mysql=/usr
至此, 算是告一段落