在centos6.6上安装apache2.4+php5.6+mysql5.6
关于wget的安装
将之前装系统的.iso文件挂载到光驱
由于我在/home/jinnan/下建立了一个cdrom文件夹
Shell>#mount /dev/cdrom /home/jinnan/cdrom
Shell># cd /home/jinnan/cdrom
Shell># ls
Shell># cd Packages
Shell>#ls | grep wget
Shell># rpm -ivh wget-1.12-5.el6.x86_64.rpm
测试wget能否下载文件
Shell># wget https://cmake.org/files/v2.8/cmake-2.8.2.tar.gz
依赖软件查询:http://rpmfind.net
关于lamp环境安装的需要软件的下载地址:
freetype: https://www.freetype.org/
libxml2: http://xmlsoft.org/sources/
jpegsrc: http://www.ijg.org
libpng: http://www.libpng.org/pub/png/libpng.html
zlib: http://zlib.net/
libgd: https://libgd.github.io/
php: http://php.net/downloads.php
apache: http://httpd.apache.org/download.cgi
apr / apr-util: http://apr.apache.org/download.cgi
pcre: http://www.pcre.org/
cmake: https://cmake.org/files/
mysql:国内镜像站下载:http://mirrors.sohu.com/mysql/
*镜像站: http://ftp.ntu.edu.tw/MySQL/Downloads/
官方下载: http://www.mysql.com
怎样从Mysql官网下载mysql.tar.gz版本的安装包:http://blog.csdn.net/u012453843/article/details/52876462
【如果压缩包为.tar.bz2,那么解压命令为 tar jxvf ****.tar.bz2】
安装gcc:
安装gcc的时候gcc的几个依赖关系如下,lib【是library的缩写】,比如libppl,ppl代表的是包名或软件名
gcc
cloog-ppl
ppl(libppl.so.7/libppl_c.so.2)
cpp
mpfr(libmpfr.so.1)
gcc-c++
libstdc++-devel
================================================================
apr安装【apr-1.6.2.tar.gz】
shell>#tar zxvf apr-1.6.2.tar.gz
shell>#cd apr-1.6.2
shell>#./configure --prefix=/usr/local/apr1.6
shell>#make && make install
安装apr-util:【 apr-util-1.5.4.tar.gz】
shell>#tar zxvf apr-util-1.5.4.tar.gz
shell>#cd apr-util-1.5.4
shell>#./configure --prefix=/usr/local/apr-util1.4 \
--with-apr=/usr/local/apr1.6/
shell>#make && make install
=============================================================
安装pcre:【 pcre-8.34.tar.gz】
shell>#./configure --prefix=/usr/local/pcre
shell>#make && make install
==========================================================
安装apache2.4【httpd-2.4.27.tar.gz】
shell>#tar zxvf httpd-2.4.27.tar.gz
shell>#cd httpd-2.4.27
shell>#./configure --prefix=/usr/local/apache2.4 \
--with-apr=/usr/local/apr1.6 \
--with-apr-util=/usr/local/apr-util1.4 \
--with-pcre=/usr/local/pcre \
--enable-modules=all \
--enable-mods-shared=all \
--enable-so \
--enable-rewrite
安装zlib【zlib-1.2.11.tar.gz】
shell>#tar zxvf zlib-1.2.11.tar.gz
shell>#cd zlib-1.2.11
shell>#./configure
shell>#make && make install
============================================================
安装libxml2【libxml2-2.7.3.tar.gz】
shell>#tar zxvf libxml2-2.7.3.tar.gz
shell>#cd libxml2-2.7.3
shell>#./configure --prefix=/usr/local/libxml2 \
--without-zlib
shell>#make && make install
=========================================================
安装jpeg【jpegsrc.v9b.tar.gz】
shell>#tar zxvf jpegsrc.v9b.tar.gz
shell>#cd jpegsrc.v9b
shell>#./configure --prefix=/usr/local/jpeg \
--enable-shared --enable-static
make && make install
==================================================
安装libpng【libpng-1.6.30.tar.gz】
shell>#tar zxvf libpng-1.6.30.tar.gz
shell>#cd libpng-1.6.30
shell>#./configure --prefix=/usr/local/png \
--enable-shared --enable-static
shell>#make && make install
==========================================================
安装字体库freetype【freetype-2.5.5.tar.gz】
shell>#tar zxvf freetype-2.5.5.tar.gz
shell>#cd freetype-2.5.5
shell>#./configure --prefix=/usr/local/freetype
shell>#make && make install
===============================================
安装libgd【libgd-2.1.1.tar.gz】
【本人安装php的时候出现一个错误,无法找到一个关于gd的一个文件】,因此在装gd的时候不要指定安装目录
shell>#tar zxvf libgd-2.1.1.tar.gz
shell>#cd libgd-2.1.1
shell>#./configure --with-jpeg=/usr/local/jpeg/ \
--with-png=/usr/local/png/ \
--with-zlib \
--with-freetype=/usr/local/freetype
shell>#make && make install
==========================================================
安装php5.6:【php-5.6.31.tar.gz】
shell>#tar zxvf php-5.6.31.tar.gz
shell>#cd php-5.6.31
shell>#./configure --prefix=/usr/local/php5.6 \
--with-apxs2=/usr/local/apache2.4/bin/apxs \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-freetype-dir=/usr/local/freetype \
--with-gd \
--with-zlib --with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local/png \
--enable-mbstring=all \
--enable-mbregex \
--enable-shared
shell>#make && make install
shell>#cp php.ini-development /usr/local/php5.6/lib/php.ini
=============================================
配置Apache使其支持php
vi /usr/local/apache2.4/conf/httpd.conf
1) 在httpd.conf(Apache主配置文件)中增加:
AddType application/x-httpd-php .php
2) 找到下面这段话:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
在index.html 前面添加index.php
nginx 的安装
下载地址: http://nginx.org/download/nginx-1.4.2.tar.gz
安装准备: nginx依赖于pcre库,要先安装pcre
shell># yum install pcre pcre-devel
shell># cd /usr/local/src/
shell># wget http://nginx.org/download/nginx-1.4.2.tar.gz
shell># tar zxvf nginx-1.4.2.tar.gz
shell># cd nginx-1.4.2
shell># ./configure --prefix=/usr/local/nginx
shell># make && make install
nginx+php的编译
apache一般是把php当做自己的一个模块来启动的.
而nginx则是把http请求变量(如get,user_agent等)转发给 php进程,即php独立进程,与nginx进行通信. 称为 fastcgi运行方式.
因此,为apache所编译的php,是不能用于nginx的.
注意: 我们编译的PHP 要有如下功能:
连接mysql, gd, ttf, 以fpm(fascgi)方式运行
老师编译php的参数(未亲测):
shell># ./configure --prefix=/usr/local/fastphp \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \
--enable-gd-native-ttf \
--enable-gd-jis-conv
--enable-fpm
自己编译php采用的是如下参数(亲测成功):
shell>#./configure --prefix=/usr/local/php5.6.nginx \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-freetype-dir=/usr/local/freetype \
--with-gd \
--with-zlib --with-libxml-dir=/usr/local/libxml2 \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local/png \
--enable-mbstring=all \
--enable-mbregex \
--enable-shared \
--enable-fpm
shell># make && make install
编译安装完后
shell># cp /usr/local/fastphp/etc/php-fpm.conf.default /usr/local/fastphp/etc/php-fpm.conf
shell># cd /home/jinnan/upload/php-5.6.31
shell>#cp php.ini-development /usr/local/php5.6.nginx/lib/php.ini
编译完毕后:
1:
nginx+php的配置比较简单,核心就一句话----
把请求的信息转发给9000端口的PHP进程,
让PHP进程处理 指定目录下的PHP文件.
如下例子:
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
1:碰到php文件,
2: 把根目录定位到 html,
3: 把请求上下文转交给9000端口PHP进程,
4: 并告诉PHP进程,当前的脚本是 $document_root$fastcgi_scriptname
(注:PHP会去找这个脚本并处理,所以脚本的位置要指对)
=================================================
由于mysql使用更高级的cmake安装,在安装mysql前要先安装cmake
安装cmake:【cmake-3.8.2.tar.gz】
shell>#tar zxvf cmake-3.8.2.tar.gz
shell>#cd cmake-3.8.2
shell>#./bootstrap
shell>#make && make install
安装mysql5.6【mysql-5.6.37.tar.gz】
shell>#tar zxvf mysql-5.6.37.tar.gz
shell>#cd mysql-5.6.37
shell>#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6
\
-DMYSQL_DATADIR=/usr/local/mysql/data
\
-DDEFAULT_CHARSET=utf8
\
-DDEFAULT_COLLATION=utf8_general_ci
以上编译参数说明(准备安装到那里
数据存储目录
默认的字符集
校对字符集)
如果出现如下错误:(安装ncurses-devel)
安装(ncurses-devel):
将之前装系统的.iso文件挂载到光驱
由于我在/home/jinnan/下建立了一个cdrom文件夹
Shell>#mount /dev/cdrom /home/jinnan/cdrom
Shell># cd /home/jinnan/cdrom
Shell># ls
Shell># cd Packages
Shell>#ls | grep ncurses-devel
Shell># rpm -ivh
ncurses-devel-5.7-3.20090208.el6.x86_64.rpm
重新进入到mysql解压后的目录
Shell>#cd mysql-5.6.37
一定要删除CMakeCache.txt,否则重新cmake会报错
Shell># rm -f
CMakeCache.txt //删除该文件
重新cmake
Shell># cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.6
\
-DMYSQL_DATADIR=/usr/local/mysql/data
\
-DDEFAULT_CHARSET=utf8
\
-DDEFAULT_COLLATION=utf8_general_ci
Shell>#make && make install
复制配置文件
shell># cp support-files/my-default.cnf
/etc/my.cnf
配置并初始化MySQL
shell># useradd mysql (该mysql用户会存在于同名的组下)
shell># chmod +x /usr/local/mysql5.6
(数据库用户信息不小心删除光了,删除data目录,从此开始执行以下指令,直至结束)
shell># chown -R mysql.mysql
/usr/local/mysql5.6
初始化mysql数据库
shell># /usr/local/mysql5.6/scripts/mysql_install_db
\
--user=mysql
\
--basedir=/usr/local/mysql5.6
\
--datadir=/usr/local/mysql5.6/data
&
把mysql安装文件(除了data)的主人都改为root,避免数据库恢复为出厂设置。
shell># chown -R root /usr/local/mysql5.6
shell># chown -R mysql /usr/local/mysql5.6/data
& 后台运行mysql服务
shell>#
/usr/local/mysql5.6/bin/mysqld_safe --user=mysql &
//查看mysql是否有启动
shell>#
ps –A | grep mysql
测试数据库
shell># /usr/local/mysql5.6/bin/mysql
–u root
mysql> show databases;
接上步,修改mysql密码(可不做此步,默认无密码)
Mysql>use mysql
mysql> delete from
user where host != 'localhost';
mysql> delete from
user where user != 'root';
mysql> update user set
password=password('root') where user='root';
mysql> flush
privileges;
如果希望在任何一个目录下都可以进入mysql数据库,则需要在/root/.bash_profile中添加mysql命令的路径:/home/mysql/bin
如果要让所有用户都能够在所有目录下进入mysql数据库,那么修改环境变量 /etc/profile
配置开机自启动服务项
shell># cp 安装包解压目录/support-files/mysql.server
/etc/init.d/mysqld
shell># chmod +x /etc/init.d/mysqld
shell># chkconfig --add mysqld
shell># chkconfig mysqld on //设置开机自启动
配置文件路径:
shell># vi /etc/rc.d/rc.local
在 文件中增加启动相关服务的命令如下:
/usr/local/apache2.4/bin/apachectl
start
/usr/local/mysql5.6/bin/mysqld_safe
--user=mysql &
service
vsftpd start