环境介绍:
操作系统:CentOS6.5 64位版本
Http服务器软件:Apache2.4.9
PHP版本:PHP5.6.30
数据库软件:Mysql5.6.16
软件安装序:
Apache---->Mysql---->PHP
一、Apache安装
安装需要的软件下载地址:
1)下载apr: http://apr.apache.org/ 2)下载apr-util: http://apr.apache.org/ 3) 下载pcre: http://www.pcre.org/4)下载httpd: http://httpd.apache.org/
以上所有软件集合包整理 下载地址: 链接: 密码:u4bz
1.安装linux软件必备常用库
在CentOS安装软件的时候,可能缺少一部分支持库,而报错。这里首先安装系统常用的支持库。那么在安装的时候就会减少很多的错误的出现。
# yum install -y gcc gdb strace gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs patch e2fsprogs-devel krb5-devel libidn libidn-devel openldap-devel nss_ldap openldap-clients openldap-servers libevent-devel libevent uuid-devel uuid mysql-devel
2.配置防火墙及80端口
修改防火墙配置:
# vi + /etc/sysconfig/iptables
添加配置项 (同时打开3306端口以供后面mysql使用)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙
# service iptables restart
3安装软件
3.1安装apr
- 解压
# cd /usr/local/src/apache# tar zxvf apr-1.5.1.tar.gz# cd apr-1.5.1
- 配置
# ./configure --prefix=/usr/local/apr
- 编译
# make
4)安装
# make install
3.2安装apr-util
1)解压
# cd /usr/local/src/apache # tar zxvf apr-util-1.5.3.tar.gz # cd apr-util-1.5.3
2)配置
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
- 编译
# make
- 安装
# make install
3.3正则表达式库安装
1)解压pcre-8.12.tar.gz
# cd /usr/local/src/apache # tar zxvf pcre-8.12.tar.gz
2)进入解压后的目录
# cd pcre-8. 12
3)配置
# ./configure
-
编译
# make
- 安装
# make install
3.4安装Apache
1)解压 # cd /usr/local/src/apache # tar -zvxf httpd-2.4.tar.gz # cd httpd-2.4.9 2)编译 # mkdir -p /usr/local/apache2 # ./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl --enable-ssl --enable-module=so --enable-rewrite --enable-cgid --enable-cgi 3)编译 # make 4)安装 # make install
4 Apache配置
4.1 配置ServerName
# vi /usr/local/apache2/conf/httpd.conf找到:#ServerName www.example.com:80修改为:ServerName localhost:80
4.2 配置DirectoryIndex
# vi /usr/local/apache2/conf/httpd.conf找到:DirectoryIndex index.html修改为:DirectoryIndex index.html index.php
**4.3 配置不显示目录结构 **
# vi /usr/local/apache2/conf/httpd.conf找到:Options Indexes FollowSymLinks修改为:Options FollowSymLinks
4.4 开启apache支持伪静态
# vi /usr/local/apache2/conf/httpd.conf找到AllowOverride None 修改为:AllowOverride All #开启apache支持伪静态,有三处都做修改LoadModule rewrite_module modules/mod_rewrite.so #取消前面的注释,开启apache支持伪静态
4.5 添加apache服务系统环境变量
vi /etc/profile #添加apache服务系统环境变量在最后添加下面这一行export PATH=$PATH:/usr/local/apache2/bin
4.6 把apache加入到系统启动
# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd# vi /etc/init.d/httpd 在#!/bin/sh下面添加以下两行#chkconfig:2345 10 90#description:Activates/Deactivates Apache Web Server
4.7 更改目录所有者与权限
#chown daemon.daemon -R /usr/local/apache2/htdocs #更改目录所有者#chmod 700 /usr/local/apache2/htdocs -R #更改apache网站目录权限
4.8 设置开机启动
# chkconfig httpd on
4.9 启动停止重启
1)启动
# service httpd start
2)停止
# service httpd stop
3)重启
# service httpd restart
4)查看端口状态
# netstat -an | grep 80
可能出现的错误 访问主机403错误
ServerName mypro ServerAlias mypro DocumentRoot "d:/mypro" DirectoryIndex index.html index.php Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted
添加Require all granted
二、安装Mysql
1.安装编译mysql需要的库和工具(本文开篇已经安装)
2.安装cmake并编译安装
#wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz #tar -xzvf cmake-2.8.10.2.tar.gz #cd cmake-2.8.10.2 #./bootstrap ; make ; make install #cd ~
若上面下载失败可以通过链接: 密码:dhhx 下载,ftp上传至服务器
3.新建MySQL所需要的目录
新建mysql安装目录
#mkdir -p /usr/local/mysql
新建mysql数据库数据文件目录
#mkdir -p /data/mysqldb
4.下载MySQL源码包并解压
wget http://dev.mysql.com/downloads/mysql/mysql-5.6.16.tar.gz tar -zxv -f mysql-5.6.16.tar.gz cd mysql-5.6.16
由于现在mysql已经不提供5.6.16的下载了,可以通过链接: 密码:duff 下载,ftp上传至服务器
5.编译安装MySQL
#cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DMYSQL_DATADIR=/data/mysqldb \ -DMYSQL_TCP_PORT=3306 \ -DENABLE_DOWNLOADS=1
上面命令的解释 -DCMAKE_INSTALL_PREFIX=dir_name 设置mysql安装目录
-DMYSQL_UNIX_ADDR=file_name 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
-DDEFAULT_CHARSET=charset_name 设置服务器的字符集。 缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表。
-DDEFAULT_COLLATION=collation_name 设置服务器的排序规则。
**-DWITH_INNOBASE_STORAGE_ENGINE=1 **
-DWITH_ARCHIVE_STORAGE_ENGINE=1
**-DWITH_BLACKHOLE_STORAGE_ENGINE=1 **
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 存储引擎选项:
MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
-DMYSQL_DATADIR=dir_name 设置mysql数据库文件目录
-DMYSQL_TCP_PORT=port_num 设置mysql服务器监听端口,默认为3306
-DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
注:重新运行配置,需要删除CMakeCache.txt文件
#rm CMakeCache.txt
编译源码
#make
安装
#make install
6.修改mysql目录所有者和组
修改mysql安装目录
#cd /usr/local/mysql#chown -R mysql:mysql .
修改mysql数据库文件目录
#cd /data/mysqldb #chown -R mysql:mysql .
7.初始化mysql数据库
#cd /usr/local/mysql #scripts/mysql_install_db --user=mysql --datadir=/data/mysqldb
8.复制mysql服务启动配置文件
#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
注:如果/etc/my.cnf文件存在,则覆盖。
9.复制mysql服务启动脚本及加入PATH路径
#cp support-files/mysql.server /etc/init.d/mysqld #vi /etc/profile 在profile文件最下方添加 PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH export PATH #source /etc/profile
10.启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的)
#service mysqld start #chkconfig --level 35 mysqld on
11.检查mysql服务是否启动
#netstat -tulnp | grep 3306#mysql -u root -p
密码为空,如果能登陆上,则安装成功。
12.修改MySQL用户root的密码
#mysqladmin -u root password '123456'
Mysql详细配置 参考:
13.可能会出现的错误 问题:
Starting MySQL..The server quit without updating PID file ([FAILED]/mysql/Server03.mylinux.com.pid). 解决: 修改/etc/my.cnf 中datadir,指向正确的mysql数据库文件目录问题:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 解决: 新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。#ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock #/usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock
MySQL问题解决:-bash:mysql:command not found
因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时, 系统在/usr/bin下面查此命令,所以找不到了 解决办法是:#ln -s /usr/local/mysql/bin/mysql /usr/bin
三、安装PHP
1.下载PHP
# wget http://au1.php.net/get/php-5.6.30.tar.gz/from/this/mirror
下载下来的是一个mirror文件,改成我们需要的文件名
#mv mirror php-5.6.30.tar.gz#tar zxvf php-5.6.30.tar.gz#cd php-5.6.30
2.编译安装
编译命令
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
注:--with-fpm 添加fastcgi支持
配置的过程中可能会报如下错误
错误1:
xml2-config not found. Please check your libxml2 installation.
解决办法:安装libxml2相关组件
#yum install libxml2#yum install libxml2-devel -y
错误2:
Please reinstall the libcurl distribution - easy.h should be in/include/curl/
安装curl相关组件
#yum install curl curl-devel
错误3:
configure: error: png.h not found.
安装libpng相关组件
#yum install libpng#yum install libpng-devel
错误4:
freetype-config not found.
安装freetype相关组件
#yum install freetype-devel
错误5:
xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution
安装libxslt相关组件
#yum install libxslt-devel
出现上图则代表编译成功了。
接下来安装编译
#make && make install
看到这句话,表明安装完成!
3.配置相关
php.ini配置
首先我们需要配置的是php.ini这个文件
安装目录有2个文件:php.ini-development和php.ini-production
php.ini-production 线上版本使用
php.ini-development 开发版本使用
我们选择development进行配置
# cp php.ini-development /usr/local/php/lib/php.ini
php-fpm配置
拷贝php-fpm配置文件
#cp -R ./sapi/fpm/php-fpm.conf /usr/local/php/etc/php-fpm.conf
拷贝启用文件
#cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
将php-fpm服务添加到chkconfig列表
#chkconfig --add php-fpm
设置开机自启动
#chkconfig php-fpm on
以后重启和停止php的方式为
#service php-fpm start#service php-fpm stop#service php-fpm restart#service php-fpm reload
#/etc/init.d/php-fpm
查看php是否启动成功
#ps aux | grep php
看到这些,表明你的php已经启动成功
备注: 可能的错误
make: *** [sapi/cli/php] Error 1
解决方法: 1、 make clean之后重新执行make,如果还不OK,执行第2步 2、编译时使用make ZEND_EXTRA_LIBS='-liconv' ---编译成功
-bash: php: command not found 命令找不到
解决方法:
#vi /etc/profile 在文件最后添加 export PATH=$PATH:/usr/local/php/bin
然后,再
#echo $PATH usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/php/bin
这时候,你可以在系统的任意目录直接敲入php -i 都可以执行了。 若已经添加到PATH中了,却不好使,执行下面命令
#ln -s /usr/local/php/bin/php /usr/bin/php
安装php mysqli扩展不能用 Warning: mysql_connect(): [2002] No such file or directory
解决方法: 如果/tmp/mysql.sock存在 但是/var/mysql/mysql.sock不存在
cd /var sudo mkdir mysqlsudo chmod 755 mysqlcd mysqlsudo ln -s /tmp/mysql.sock mysql.sock
如果/var/mysql/mysql.sock 存在 但是/tmp/mysql.sock不存在
cd /tmpln -s /var/mysql/mysql.sock mysql.sock
4.PHP详细配置 参考
参考: