Apache编译安装
一,需要软件:
- apr-1.5.1.tar.gz
- apr-util-1.5.4.tar.gz
- pcre-8.20.tar.zip
- httpd-2.4.10.tar.gz
二,安装apr
yum install gcc gcc-c++ libtools zlib zlib-devel make -y
tar zxf apache/apr-1.5.1.tar.gz
cd ./apache/apr-1.5.1
./configure --prefix=/usr/local/apr
make && make install
三,安装apr-util
tar zxf apr-util-1.5.4.tar.gz
cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
四,安装pcre库
tar zxf pcre-8.20.tar.gz
cd pcre-8.20
./configure --prefix=/usr/local/pcre
make && make install
五,安装Apache服务器
tar zxf httpd-2.4.10.tar.gz
cd httpd-2.4.10
./configure--prefix=/usr/local/apache --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre —enable-so —enable-rewrite
make && make install
安装完成后进入/usr/local/apache目录下,检查是否有如下文件
bin build cgi-bin error htdocs icons include logs man manual
modules
六,配置Apache
vi /usr/local/apache/conf/httpd.conf
修改条目如下:
#把ServeName www.example.com:80改成以下
ServerName localhost:80
centos7开启80端口:
firewall-cmd --permanent --add-port=80/tcp
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
重启防火墙
systemctl restart firewalld.service #重启
systemctl stop firewalld.service #关
systemctl start firewalld.service #开
查看已经开放的端口:
firewall-cmd --list-ports
CentOS6.5 开启防火墙方法
vi /etc/sysconfig/iptables 打开配置文件加入如下语句:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
service iptables restart #重启防火墙,修改生效
netstat -ntlp #列出所有端口
7、设置Apache为Linux服务并实现开机自启动
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd
注:—在文件开头加上下面2句(注:第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15))
在第一行下添加如下三行文字
Comments to support chkconfig on RedHat Linux
chkconfig: 2345 90 90
description:http server
注册该服务
chkconfig --add httpd #所有开机模式下自启动
chkconfig httpd on #345开机模式下自启动
apache安装完成
service httpd start #开启apache
service httpd stop #停止apache
service httpd restart #重启apache
二、MYSQL安装
安装编译软件、安装MySQL相关依赖包
yum install -y cmake ncurses-devel openssl-devel bison-devel libaio libaio-devel
创建MySQL安装目录
如MySQL安装目录为:/usr/local/mysql
mkdir -p /usr/local/mysql
mkdir -p /usr/local/mysql/data
创建用户组
groupadd mysql
创建mysql用户,所属组为mysql
useradd -s /bin/bash -m -g mysql mysql #创建的目录的所属用户与所属组为mysql:mysql
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data
解压MySQL源码包
tar -zxvf mysql-5.6.25.tar.gz
开始安装
解压缩之后进入,mysql5.6起都是通过cmake的方式进行配置的,可以直接采用默认的方式cmake
.就能直接进入配置,也可以自己指定配置,下面自己执行配置,修改一些常规的mysql配置井号#后面是注释
[root@localhost mysql-5.6.25]# 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_MYISAM_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
参数说明
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定安装目录
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock #指定mysql.sock地址
-DDEFAULT_CHARSET=utf8 #指定默认的字符集
-DDEFAULT_COLLATION=utf8_general_ci #指定默认的排序字符集
-DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb存储引擎
-DWITH_MYISAM_STORAGE_ENGINE=1 \安装myisam存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \安装blackhole存储引擎
-DMYSQL_DATADIR=/usr/local/mysql/data #mysql数据文件存放目录
-DMYSQL_TCP_PORT=3306 #端口
-DENABLE_DOWNLOADS=1
配置之后,可能会出现错误
要是出现错误要删除掉CMakeCache.txt重新cmake
[root@localhost mysql-5.6.25]# rm -rf CMakeCache.txt
cmake之后没报错,直接执行make&& make install
安装数据文件
mysql安装完成之后需要安装文件,在mysql的安装目录下的scripts文件夹里可以看到mysql_install_db,用来安装mysql数据文件,指定mysql用户
进入安装好后的mysql文件夹
cd /usr/local/mysql
[root@localhost mysql]# ls /usr/local/mysql/scripts/
mysql_install_db
[root@localhost mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
复制mysql安装目录下的support-files文件夹中的my-default.cnf配置文件到/etc/my.cnf即可
[root@localhost support-files]# cp my-default.cnf /etc/my.cnf
如果存在直接覆盖就好了,这里最好把/etc/my.cnf改变下所有者
环境变量的配置,便于使用
将mysql服务启动放在/etc/init.d/下
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
将/usr/local/mysql/bin/目录添加到环境变量中,vim编辑vim
/etc/profile永久添加环境变量(在最后面添加下面内容)
export PATH=$PATH:/usr/local/mysql/bin
执行下面的命令使所做的更改生效
[root@localhost mysql]# . /etc/profile # 点后有空格
登录mysql
[root@localhost mysql]# mysql -uroot
第一次登陆不需要密码,需要通过mysqladmin设置root登录密码
[root@localhost mysql]# /usr/local/mysql/bin/mysqladmin -uroot password '111111'
再登录mysql
Mysql -uroot -p
#输入密码
Mysql 开启 重启
service mysql start #开启mysql
service mysql stop #关闭mysql
service mysql restart #重启mysql
PHP编译安装
安装php依赖库
yum install -y glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel gettext gettext-devel curl curl-devel zip unzip e2fsprogs e2fsprogs-devel krb5 krb5-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libtool libtool-libs gmp-devel pspell-devel parted perl mod_perl-devel
编译安装LIBJPEG
tar zxf jpegsrc.v9a.gz
cd jpeg-9a/
./configure –prefix=/usr/local/libjpeg –enable-shared –enable-static
make && make install
编译安装LIBPNG
tar zxf libpng-1.6.15.tar.gz
cd libpng-1.6.15
./configure –prefix=/usr/local/libpng
make && make install
编译安装FREETYPE
tar zxf freetype-2.5.4.tar.gz
cd freetype-2.5.4
./configure=/usr/local/freetype
make && make install
编译安装LIBGD
tar -zxvf libgd-2.1.0.tar.gz
cd libgd-2.1.0
#configure时不要指定prefix了,编译PHP时会出错
./configure –with-jpeg=/usr/local/libjpeg –with-png=/usr/local/libpng –with-freetype=/usr/local/freetype –with-zlib
make && make install
编译安装LIBCRYMPT
tar zxf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure –prefix=/usr/local/libmcrypt
make && make install
编译安装LIBXML2
tar zxf libxml2-2.9.2.tar.gz
cd libxml2-2.9.2
./configure –prefix=/usr/local/libxml2
make && make install
编译安装PHP
tar -zxvf php-5.6.31.tar.gz #解压php
cd php-5.6.31
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/local/apache/bin/apxs --enable-calendar --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr/local/libpng --with-zlib --with-libxml-dir=/usr/local/libxml2 --with-curl --with-gd --enable-gd-native-ttf --with-gettext --with-mhash --enable-zip --enable-pdo --enable-fpm --enable-sockets --enable-xml --enable-mbstring --enable-bcmath --without-pear
make && make install
注:让所有用户显示行号 输入命令:vim /etc/vimrc 在vimrc文件的最后添加:set nu 保存:wq
手动加载配置:source /etc/bashrc 这样不管是哪个用户在vim下都显示行号
将apache与php建立关联关系
修改php配置文件php.ini
到源码包的目录下复制一个php.ini-development或者php.ini-production到php的配置文件所在目录,并改名为php.ini。
php配置文件目录:编译的时候没有指定–with-config-file-dir,则默认放在在php根目录下的lib目录下(例如:php安装在/usr/local/php/目录,则放在/usr/local/php/lib/目录下)由于上面安装时指定了–with-config-file-path=/usr/local/php/etc,所以把复制一个php.ini-development或者php.ini-production到/usr/local/php/etc
[root@localhost php-5.6.21]# cp php.ini-development /usr/local/php/etc/php.ini
php5默认<?php echo date("Y-m-d H:i:s");?>时间与北京时间相差八小时(少八小时)
为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时
[root@localhost php-5.6.21]# vim /usr/local/php/etc/php.ini
查找 ;date.timezone = 将;去掉,并修改成 date.timezone = PRC
除了E_NOTICE类型的错误(Notice)不报告,其他的都报告,查找 error_reporting = E_ALL 改成
error_reporting = E_ALL & ~E_NOTICE 使 include 等可以包含域外网页如 include_once
“http://www.126.com”; 找到 allow_url_include = Off 改成 allow_url_include
= On修改apache配置文件httpd.conf 一大堆LoadModule下面 添加
#加载PHP处理模块 LoadModule php5_module modules/libphp5.so
#添加PHP等后缀的处理,添加到最后一行 AddType application/x-httpd-php .php
如果服务器有任何问题将通知的邮箱地址
修改 ServerAdmin you@example.com 改成 ServerAdmin 302929314@qq.com
配置服务器名称
本机ip为192.168.1.143,如果DNS未配置,此段语句要放在配置文件开头处
修改 ServerName www.example.com:80
改成 ServerName 192.168.155.128:80 或ServerName localhost:11080
修改 DirectoryIndex index.html
改成 DirectoryIndex index.php index.html
禁止Apache显示目录索引
要实现禁止Apache显示目录索引,只需将 Option 中的 Indexes 去掉即可。
修改目录配置,代码如下:
<Directory "D:/Apache/blog.phpha.com">
Options Indexes FollowSymLinks # 修改为: Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache
显示该目录结构。用户就不会看到该目录下的文件和子目录列表了。Indexes 的作用就是当该目录下没有 index.html
文件时,就显示目录结构,去掉 Indexes ,Apache 就不会显示该目录的列表了。
修改apache的启动用户及部署根目录
新建apache用户 useradd apache passwd apache
修改apache的启动用户
#User daemon
#Group daemonUser apache
Group apache
新建网站根目录
[apache@localhost ~]$ mkdir apache-htdocs
修改apache网站部署的根目录
#DocumentRoot “/usr/local/apache/htdocs”
DocumentRoot “/home/apache/apache-htdocs”
<Directory “/home/apache/apache-htdocs”>
增加扩展动态目录配置
修改php.ini配置增加如下一行
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-zts-20131226/”
安装phpmyadmin
下载phpmyadmin放到网站目录下就可
至此安装lamp环境结束
后续:
安装相关扩展库-具体安装请见其它文档
将前面的;去掉使PHP支持mysql,并且配置时要指定–with-mysql的值,如果之前安装时未配置,需要重新配置,编译,安装
;extension=php_mysql.dll
要使用phpmyadmin或mysqli函数打开,并且配置时要指定–with-mysqli的值,如果之前安装时未配置,需要重新配置,编译,安装
;extension=php_mysqli.dll
要PHP支持png,jpg,gif等(phpcmsV9必须)打开
;extension=php_gd2.dll
大字符集,支持多字符集之间的转换打开
;extension=php_mbstring.dll