文章部分内容来源于网络,根据自己的实践,按步骤整理了msyql、apache、php的整个安装过程,写于:2016-5-18 09:55:36。 QQ:75896091
采用在线下载源码并编译的方式安装,如果已有源码包就忽略下载步骤。
下载安装cmake
下载地址:http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
[root@dc01]#cd/usr/local/sourcefiles
[root@dc01]#wget
http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz
[root@dc01]#tar-zxvf cmake-2.8.5.tar.gz
[root@dc01]#cdcmake-2.8.5
[root@dc01]#./configure
执行./configure报错:
Error when bootstrapping CMake:
Cannot find appropriate C++compiler on this system.
Please specify one using environmentvariable CXX.
See cmake_bootstrap.log for compilers attempted.
需要安装c++库
[root@dc01]
#yum installgcc-c++
[root@dc01]#./configure
[root@dc01]#make&& make install
1.2
下载安装
mysql 下载地址:http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz
ssh
工具(我用的是xshell)连接到linux服务器,在/usr/local目录下创建一个sourcefiles。
命令:[root@dc01]#
cd /usr/local
[root@dc01]#
mkdir sourcefiles
下载mysql源码文件
[root@dc01]#wget
http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.30.tar.gz
下载成功后解压
[root@dc01]#tar-zxvf mysql-5.6.30.tar.gz
mysql5.5
以后是通过cmake来编译的,1.1节点中已经安装成功则可以继续往下进行。
[root@dc01]#cdmysql-5.6.30
2.
创建mysql安装目录
[root@dc01]#mkdir/usr/local/mysql //
安装mysql
[root@dc01]#mkdir/usr/local/mysql/data //
存放数据库
3.
创建mysql用户和组
[root@dc01]#
groupaddmysql
[root@dc01]#
useradd -r-g mysql mysql
注:在以下的文字中“[root@dc01]#”简写为“#”。
4.
编译
#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
如果报错了,错误信息如下:CMake Error at cmake/readline.cmake:85 (MESSAGE):
Curses library not found. Please installappropriate package,
removeCMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent callfirst):
cmake/readline.cmake:128(FIND_CURSES)
cmake/readline.cmake:202(MYSQL_USE_BUNDLED_EDITLINE)
CMakeLists.txt:427(MYSQL_CHECK_EDITLINE)
-- Configuring incomplete, errorsoccurred!
那时因为缺少ncurses-devel
,执行yum -y install ncurses-devel命令进行安装。
删除CMakeCache.txt文件
#rm -fCMakeCache.txt
重新编译:
#make clean
#rm -f CMakeCache.txt
#rm -rf /etc/my.cnf
#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
#make && make install
这一步会很慢,喝杯绿茶慢慢等...
#cd /usr/local
#chown -R root:mysql mysql/
#chown -R mysql:mysql mysql/data/
#cd /usr/mysql/support-files
#cp my-default.cnf /etc/my.cnf
#cd /usr/local/mysql
#scripts/mysql_install_db --user=mysql
#ln -s /usr/local/mysql/bin/mysql /usr/bin
#cd/usr/local/mysql/support-files
#cp mysql.server /etc/init.d/mysqld
#chkconfig --add mysqld
#chkconfig mysqld on
启动msyql
service mysqld restart
#mysql -uroot -p
此时还不用密码就可以登录,按enter进入msyql
#use msyql;
把所有的空密码都修改了
#update user set password=password('#*(IEqqssfNffD3sdf');
到此步,mysql已经安装完成了。
下载apache最新文档版本,apache官网 http://httpd.apache.org/download.cgi
下载地址:http://mirrors.noc.im/apache//httpd/httpd-2.4.20.tar.gz
#cd/usr/local/sourcefiles
#wget -chttp://mirrors.noc.im/apache//httpd/httpd-2.4.20.tar.gz
下载完成后解压
#tar-zxvf httpd-2.4.20.tar.gz
#cd httpd-2.4.20
#./configure --prefix=/usr/local/apache2 --enable-module=shared
要加上后面的参数,否则无法使用php,-enable-module=shared表示Apache可以动态的加载模块。
执行后出现第一个错误:
[[email protected]]# ./configure --prefix=/usr/local/apache2 --enable-module=shared
checkingfor chosen layout... Apache
checkingfor working mkdir -p... yes
checkingfor grep that handles long lines and -e... /bin/grep
checkingfor egrep... /bin/grep -E
checkingbuild system type... x86_64-unknown-linux-gnu
checkinghost system type... x86_64-unknown-linux-gnu
checkingtarget system type... x86_64-unknown-linux-gnu
configure:
configure:Configuring Apache Portable Runtime library...
configure:
checkingfor APR... no
configure:error: APR not found. Please read thedocumentation.
原因是没有apr和par-util。
访问地址:https://apr.apache.org/
#cd /usr/loca/sourcefiles
#wget -c http://mirror.bit.edu.cn/apache//apr/apr-1.5.2.tar.gz
#wget -chttp://mirror.bit.edu.cn/apache//apr/apr-util-1.5.4.tar.gz
#mkdir/usr/local/apr
#mkdir/usr/local/par-util
#tar-zxvf apr-1.5.2.tar.gz
#tar-zxvf apr-util-1.5.4.tar.gz
注意:一定要先安装apr后安装apr-util。
#cd /usr/loca/sourcefiles/apr-1.5.2
#./configure--prefix=/usr/local/apr
#make && make install
#cd /usr/loca/sourcefiles/apr-util-1.5.4
#./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr
报错:checking forchosen layout... apr-util
checkingfor gcc... gcc
checkingwhether the C compiler works... yes
checkingfor C compiler default output file name... a.out
checkingfor suffix of executables...
checkingwhether we are cross compiling... no
checkingfor suffix of object files... o
checkingwhether we are using the GNU C compiler... yes
checkingwhether gcc accepts -g... yes
checkingfor gcc option to accept ISO C89... none needed
Applyingapr-util hints file rules for x86_64-unknown-linux-gnu
这是需要安装gcc,直接运行 yuminstall gcc,安装Gcc即可
# yuminstall gcc
安装成功后再次执行
#./configure--prefix=/usr/local/apache2 --enable-module=shared --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util
#make
make是报错checking for pcre-config... false
下载编译pcre,版本是:pcre-8.38.zip。
#cd/usr/local/sourcefiles
#tar-zxvf pcre-8.38.zip
#cd pcre-8.38
#./configure
#make
#maketest //非必须
#makeinstall
再次编译par-util
#cd/usr/local/sourcefiles/apr-util-1.5.4
#./configure--prefix=/usr/local/apache2 --enable-module=shared --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre/
#make
#makeinstall
#./configure --prefix=/usr/local/apache2--enable-module=shared
#cd /usr/local/apache/bin
# apachectl -k start
httpd: Could not reliably determine theserver's fully qualified domain name, using 127.0.0.1 for ServerName
解决办法非常简单:vi /usr/local/apache2/config/httpd.conf
找到#ServerName www.example.com:80 把#去掉,再重启apache即可没事了。
AddTyperequires at least two arguments, a mime type followed by one or more fileextensions
apache配置中添加php模块配置
#vi /usr/local/apache2/conf/httpd.conf
找到:
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
在后面添加:
AddType application/x-httpd-php .php(使Apcche支持PHP注意:.php5一定要有个空格)
AddType application/x-httpd-php-source.php5 (注意:.php5一定要有个空格)
找到:
DirectoryIndex index.html
添加:
DirectoryIndex index.html index.php
找到:
#ServerName www.example.com:80
修改为:
ServerName 127.0.0.1:80或者ServerName localhost:80
记得要去掉前面的“#”
#cd/usr/local/apache2/bin
#./apachectl-k stop
#./apachectl-k start
#./apachectl-k restart
文件名称: php-5.6.21.tar.gz
下载地址:http://cn2.php.net/get/php-5.6.21.tar.gz/from/this/mirror
下载成功后文件名称是mirro
#cd/usr/local/source
#wget http://cn2.php.net/get/php-5.6.21.tar.gz/from/this/mirror
修改文件名称
#mvmirro php-5.6.21.tar.gz。
#tar-zxvf php-5.6.21.tar.gz
#cd php-5.6.21
#mkdir /usr/local/php //php要安装到这个目录
检查安装环境生成Makefile
#./configure--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs
注意这里有一个-with-apxs2=/usr/local/apache/bin/apxs选项,其中apxs是在安装Apache时产生的,apxs
是一个为Apache HTTP服务器编译和安装扩展模块的工具,使之可以用由mod_so提供的LoadModule指令在运行时加载到Apache服务器中。我的理解是通过这个工具把PHP模块动态加载到Apache中。
出现错误:configure: error: xml2-config not found. Please check yourlibxml2 installation.安装libxml2-deve即可。
#yum install libxml2
# yum installlibxml2-devel
安装完毕后,重新运行上面的./configure命令。
##./configure--prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs
# make
#make test
#make install
重启apache
在apache的htdocs下建立一个php文件test.php,里面的内容如下:
phpinfo();
?>
#cd /usr/local/apache2/htdocs
#vitest.php
然后在浏览器里输入http://127.0.0.1/test.php
如果出现php的相关配置,成功,如果什么都没有输出,说明失败,重新以上步骤或者查找原因
如果决定在安装后改变配置选项,只需重复最后的三步configure, make, 以及 makeinstall,然后需要重新启动 Apache使新模块生效。Apache不需要重新编译。
测试结果如下图:
至此,apache、msyql、php都安装完毕了, 但是php程序还不能连接mysql、不能使用openssl。
进入到php源码目录
#cd/usr/local/sroucefiles/php-5.6.21
#cdext/pdo
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config --enable-pdo=shared
#make&& make install
如果编译成功则提示:
Installingshared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
Installingheader files: /usr/local/php//include/php/
InstallingPDO headers: /usr/local/php//include/php/ext/pdo/
说明在/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo.so文件
在php的配置文件(php.ini)添加配置,但是通过查找没有找到php.in。
#find /-name php.ini
原因如下:
装好php后找不到php.ini, 也没有php.ini.recommended或 php.ini-dist
php默认是没有php.ini的,可以将php.ini.recommended或 php.ini-dist cp 成 php.ini 到/usr/local/php/lib/ [具体PATH要看php安装的PATH]
由于版本更新
php.ini-production对应于 php.ini-recommended
php.ini-development对应于 php.ini-dist
查找php.ini-development
#find /-name php.ini-development
查找发现在php的源码目录中存在这个文件,那么把源码目录中php.in-development拷贝到php安装目录即可。php.in-development文件位置在/usr/local/sroucefiles/php-5.6.21/php.ini-development
#cp /usr/local/sroucefiles/php-5.6.21/php.ini-development/usr/local/php/lib/php.ini
配置pdo
#vi/usr/local/php/lib/php.ini
添加这行数据 extension="/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo.so"
#cd/usr/local/sourcefiles/php-5.6.21/ext/pdo_msyql
#/usr/local/php/bin/phpize
#./configure--with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
#make
#makeinstall
成功则会出现如下提示:
Installingshared extensions: /usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
说明的/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/目录下生成了pdo_mysql.so文件
#vi/usr/local/php/lib/php.ini
添加这行数据extension="/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/pdo_mysql.so"
重启apache,访问http://127.0.0.1,页面有图1.1中的内容表示已经配置成功了。
图1.1
#cd /usr/local/sourcefiles/php-5.6.21/ext/openssl
#/usr/local/php/bin/phpize
执行后,发现错误 无法找到config.m4,config0.m4就是config.m4。直接重命名。
#mv config0.m4 config.m4
#./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config
#make
#make install
安装完成后,会返回一个.so文件(openssl.so),位置在:/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/
#vi/usr/local/php/lib/php.ini
添加这行数据extension="/usr/local/php//lib/php/extensions/no-debug-non-zts-20060613/openssl.so"
4.3.3检查配置
重启apache,访问http://127.0.0.1,页面有图1.2中的内容表示已经配置成功了。
图1.2
结束语:记录工作中的点点滴滴,形成文档,加深印象。每天让自己进步一点点!