linux 配置apache、mysql、php ——20150807
2015年8月7日
一部分:mysql
mysql 5.5.40安装
第二部分:apache(apache要安装在php前面。apache和mysql可以随意顺序)
1、
# tar zxvf httpd-2.2.11.tar.gz
# ./configure --prefix=/usr/local/apache2 --enable-dav --enable-modules=so【20150807是这个配置】
./configure --prefix=/usr/local/apache --enable-so【这个也行】
make
make install
一般出现这个-bash: make: command not found提示,是因为安装系统的时候使用的是最小化mini安装,系统没有安装make、vim等常用命令,直接yum安装下即可。
-------------------------------------------------------
解决方案:
yum -y install gcc automake autoconf libtool make
直接ssh运行即可,安装make。
启动Apache服务:
# /usr/local/apache2/bin/apachectl start
出现错误:
httpd: apr_sockaddr_info_get() failed for VM_74_204_centos
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
-------------------------------
解决方案:
在Apache的安装目录下的conf文件修改如下
(1) ServerName localhost:80
或者在 /etc/hosts 中填入自己的主机名称 bogon,如下:
(2)127.0.0.1 bogon
---------------------------------------------
【下面这个错误可以避免,apache支持php,就是php编译的时候,加个参数。apache安装的时候已经加了这个参数--enable-modules=so】
/usr/local/apache2/modules/libphp5.so: cannot open shared object file: No such file or directory
-------------------------------------------------
解决方案:Apache 安装目录http。conf文件增加这一行
LoadModule php5_module /usr/local/apache2/modules/libphp5.so
还是/usr/local/apache2/modules/libphp5.so: cannot open shared object file: No such file or directory 错误,那就先装php吧
第三部分:安装php
安装libxml2【一定要先安装这个】
方式一:
1 tar zxvf libxml2-2.6.32.tar.gz
2 cd libxml2-2.6.32
3 ./configure --prefix=/usr/local/libxml2
4 make
5 make install
方式二:【20150807采用的是这个方式】
yum install libxml2
yum install libxml2-devel -y
安装php
1、tar zvxf php-5.3.28.tar.gz
2、cd php-5.3.28
3、./configure --prefix=/usr/local/php --with-mysqli=/usr/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2
出现错误
configure: error: xml2-config not found. Please check your libxml2 installation.
------------------------------------
解决方案:http://www.cnblogs.com/happyhotty/articles/2539864.html
【检查是否安装了libxm包
[root@XKWB3403 php-5.3.8]# rpm -qa |grep libxml2
libxml2-2.6.26-2.1.12
libxml2-python-2.6.26-2.1.12
重新安装libxml2和libxml2-devel包
yum install libxml2
yum install libxml2-devel -y
安装完之后查找xml2-config文件是否存在
[root@XKWB3403 php-5.3.8]# find / -name "xml2-config"
/usr/bin/xml2-config
】
然后再重新 config
+--------------------------------------------------------------------+
| License: |
| This software is subject to the PHP License, available in this |
| distribution in the file LICENSE. By continuing this installation |
| process, you are bound by the terms of this license agreement. |
| If you do not agree with the terms of this license, you must abort |
| the installation process at this point. |
+--------------------------------------------------------------------+
Thank you for using PHP.
出现这个【而且只能出现这个,后面如果还有文字,就代表还有问题。有一次编译php没有加这个--with-libxml-dir=/usr/local/libxml2,就出现后面还有一堆文字,不算成功】,成功安装php
然后再
make make install
出现这个
[PEAR] Console_Getopt - installed: 1.3.1
warning: pear/PEAR requires package "pear/Structures_Graph" (recommended version 1.0.4)
warning: pear/PEAR requires package "pear/XML_Util" (recommended version 1.2.1)
[PEAR] PEAR - installed: 1.9.4
Wrote PEAR system config file at: /usr/local/php/etc/pear.conf
You may want to add: /usr/local/php/lib/php to your php.ini include_path
[PEAR] Structures_Graph- installed: 1.0.4
[PEAR] XML_Util - installed: 1.2.1
/usr/local/php-5.3.28/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin
ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar
Installing PDO headers: /usr/local/php/include/php/ext/pdo/
安装成功了
---------------------------------------------------
最后 php链接php还是不成功。原因解决方案:
cp 一个php.ini 到 /usr/local/php/lib 【 cp /opt/php-5.3.28/php.ini-production /usr/local/php/lib/php.ini或者直接操作复制过去那个文件 】
vi /usr/local/php/lib/php.ini
找到这一行 extension=mysql.so【*5】
php。ini里面 去掉分号,加上面这个链接。重启Apache即可
./configure --with-php-config=/usr/local/bin/php-config
【如果不成功,目录之类的,请重新输入或者
updatedb
locate php-config
找到对应的,复制粘贴】
步骤大致是:
a、进入php目录下ext下mysql下
b、/usr/local/php/bin/phpize
c、./configure --with-php-config=/usr/local/bin/php-config
【如果./configure不成功,下面这种方式。】
(
ln -s /usr/lib64/mysql/libmysqlclient.a /usr/lib/libmysqlclient.a
ln -s /usr/lib64/mysql/libmysqlclient_r.a /usr/lib/libmysqlclient_r.a
ln -s /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so【注意,这一台机器是16,去具体的目录查看一下】
)
参考网站:http://www.cnblogs.com/wangtao_20/archive/2011/03/07/1973621.html
--------------------------------------------------------
d、make 【./configure成功之后才有make】
e、make install
f、配置mysql.so 回到【*5】
--------------------------------------
以前的一些总结
2015年2月21日
说明:
1、安装apache+mysql+php,php总是最后装的,apache和mysql可以不分顺序。因为根据视频的那个源码包安装的时候,php是指定了目录的。指定了mysql和apache
2、apache中支持php,相当于apache中开启了php模块。然后php(其实是程序里面)开启了连接了数据库。
3、php里面开启例如zlib、mysql、xmlrpc、openssl 、gd库。在这个文件里面编辑vi /usr/local/php/etc/php.ini 添加即可【/usr/local/php是php按照的时候 --prefix的目录】
4、apache在windows的配置文件 路径在\Apache2.2\conf\httpd.conf linux在/usr/local/apache2/etc/httpd.conf 多了一个etc
5、添加别名 alias sta='/usr/local/apache2/bin/apachectl start'
-------------------------------------------------------------
今天的总结:
1、主页目录存放位置。在php.ini里面的两个相应位置修改成/home/www既可。
2、测试是否mysql链接正常的时候,如果是空白页,删掉第一个 面向过程的mysql链接测试,面向对象的就测试正常。当然,里面的数据库密码要修改成一样的,才能测试。
3、apache是否支持php。只要apache编译的时候,加上那个enable-so选项和php编译的时候有apxs选项。就会自动在 php.ini里面有 load apachephp5 module选项
如果没有的话,在网盘里面下载httpd.conf覆盖对应的【搜 httpd.conf】
4、添加扩展库 curl.so
情况二:已经安装了php,现在需要添加这个扩展
进入安装原php的源码目录,(如果删了,但是还有原来的压缩文件的话,重新解压就行)
cd ext/curl phpize ./configure –with-curl=DIR (可以不写dir,如果你的curl安装时没有指定目录) make
就会在PHPDIR/ext/curl/moudles/下生成curl.so的文件。
复制curl.so文件到extensions的配置目录,修改php.ini就好了
以上两种就是Linux下php扩展cURL的安装方法。
以前总结的添加扩展库的方法链接
http://www.cnblogs.com/bluewelkin/p/4296297.html
或http://blog.sina.com.cn/s/blog_6df9fbe30101ecx7.html
2015年0811总结
1、apache支持php 加入Load php5 module 那个模块 和 index.php .apache的配置文件 http.conf文件里面【php在mysql和apache 最后编译,加入编译选项--with-apxs2=/usr/local/apache2/bin/apxs就会自动加入 Load php5 这一条语句】
2、php支持mysql 加入 mysql.so文件。php文件的配置文件,我的是默认的 /usr/local/lib/php.ini[ 和下面的这一段话有区别 我的是lib]
楼主一开始修改的是 php编译后目录/lib/php.ini 这个文件,修改之后新增模块并不生效。后来才知道,前面这个是默认(编译时候不指定)的扩展配置目录,如果编译的时候指定了php.ini的目录,以后都需要修改指定目录下的php.ini,例如楼主的是 php编译后目录/etc/php.ini 。
加入其它模块,类似,如curl.so
apache 找php【apache的配置文件 在/usr/local/apache2/conf下】,php 找php的配置文件【/usr/local/php/lib/php.ini】
2015年8月13号
1、测试配置文件是否正常 /usr/local/php/bin/php -v
2、测试加载了哪些模块 /usr/local/php/bin/php -m
./configure --prefix=/usr/local/php --with-mysqli=/usr/bin/mysql_config --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2
--with-curl=/usr/local/curl
添加了curl模块,都不需要额外添加了,编译这个就ok 2015年0813
3、php的加载配置文件为 /usr/local/php/lib/php.ini 。可以在浏览器里面看到或编译安装的时候,make install 有显示。
这次就没有,直接拷贝了一个【为什么没有呢,默认的是php编译后目录/lib/php.ini 】