LAMP环境搭建与配置
LAMP架构
- linux+Apache(httpd)+mysql+PHP
- PHP网站(google、淘宝、百度)
- 三个角色可以在一台机器、也可以分开(httpd和php要在一起)
安装MySQL
- MySQL的几个常用安装包:rmp、源码、二进制免编译
cd /usr/local/src (软件包放在一起容易管理)
- 下载源码包最好在官网下载;其他网站下载可能被修改过。
[root@host src]#wget http://mirros.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@host src]# pwd
/usr/local/src
[root@host src]#ls
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@host src]#tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@host src]#mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql(移动位置)
[root@host src]#cd /usr/local/mysql/
[root@host mysql]#useradd -s /sbin/nologin mysql(创建mysql用户)
[root@host mysql]#mkdir -p /data/mysql(创建datadir,数据库文件放这里面)
[root@host mysql]#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
//--user表示定义数据库的用户的身份
//--datadir表示定义数据库的安装目录
//如有报错,安装yum install -y perl-Module-Install
- 修改配置文件
# These are commonly set, remove the # and set as required.
basedir = /usr/local/mysql //basedir表示MySQL包所在路径
datadir = /data/mysql //表示定义存放数据的位置
port = 3306 //port表示定义MySQL服务监听的端口号
server_id = 155 //表示该MySQL服务的ID号
socket = /tmp/mysql.sock //定义MySQL服务监听的套接字地址
[root@host mysql]#cp support-files/mysql-defaultcnf /etc/my.cnf
[root@host mysql]#cp support-files/mysql.server /etc/init.d/mysql(复制脚本文件)
[root@host mysql]#vi /etc/init.d/mysql(修改启动脚本)
basedir=/usr/local/mysql
datadir=/data/mysql
[root@host mysql]#chkconfig --add mysql(把mysql服务添加到列表中)
[root@host mysql]#chkconfig mysql on(开机就启动)
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
. SUCCESS! //安装成功
如若出现这种情况就要安装yum -y install autoconf
安装Apache
- Apache是一个基金会的名字,httpd才是我们主要安装的软件包,早期他的名字叫Apache
- Apache官网www.apache.org
[root@host src]#ls
apr-1.6.5.tar.gz mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
apr-util-1.6.1.tar.gz php-5.6.30.tar.gz
httpd-2.4.46.tar.gz php-7.1.6.tar.bz2
//在官网下载源码包:httpd-2.4.39.tar,apr-1.6.5.tar,apr-util-1.6.1.tar
[root@host src]#tar -zxvf apr-1.6.5.tar.gz
[root@host src]#tar -zxvf apr-util-1.6.1.tar.gz
[root@host src]#tar -zxvf httpd-2.4.46.tar.gz
//解压压缩包
[root@host src]#cd /usr/local/src/apr-1.6.5
[root@host apr-1.6.5]#./configure --prefix=/usr/local/apr//如若这里出现报错安装libtool,yum install -y libtool*
[root@host apr-1.6.5]#make && make install//如若这有错装expat-devel,yum install -y expat-devel
[root@host mysql]#cd /usr/local/src/apr-util-1.6.1
[root@host apr-util-1.6.1]#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@host apr-util-1.6.1]#make && make install
[root@host mysql]#cd /usr/local/src/httpd-2.4.46
[root@host httpd-2.4.46]#./configure
--prefix=usr/local/apache2.4 //--prefix指定安装目录
--enable-so //--nable-so表示启用DSO
--with-pcre
--with-included-apr
--enable-modules=most
--enable-mpms-shared=all //表示以共享形式安装模块
--with-mpm=prefork
[root@host src]#yum install -y pcre pcre-devel (为避免make时出错提前安装数据库文件)
[root@host src]#make && make install
[root@host apache2.4]#ls /usr/local/apache2.4/modules
[root@host apache2.4]#/usr/local/apache2.4/bin/apachectl -M(查看配置文件有哪些文件)//share字样的动态共享模块,static以静态形式存在
安装PHP
PHP的官网:www.php.net
[root@host src]#pwd
/usr/local/src
[root@host src]ls
apr-1.6.5 httpd-2.4.46.tar.gz
apr-1.6.5.tar.gz mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
apr-util-1.6.1 php-5.6.30.tar.gz
apr-util-1.6.1.tar.gz php-7.1.6.tar.bz2
httpd-2.4.46(下载源码包php-5.6.30)
[root@host src]#tar -zxvf php-5.6.30.tar.gz
[root@host src]#yum install -y bzip2 //安装压缩工具包
[root@host src]#tar -jxvf php-7.1.6.tar.bz2
[root@host src]#yum install -ylibxml2-devel/openssl openssl-devel/bzip2 bzip2-devel/libpng libpng-devel/freetype freetype-devel/epel-release/libmcrypt-devel
[root@host src]#cd php-7.1.6
[root@host php-7.1.6]#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
[root@host php-7.1.6]#make && make install //编译安装
[root@host php-7.1.6]#cd /usr/local/src/php-5.6.30
[root@host php-5.6.30]#/usr/local/apache2.4/bin/httpd -M //查看加载模块
[root@host php-5.6.30]#cp php.ini-production /usr/local/php/etc/php.ini
[root@host php-5.6.30]#vi /usr/local/apache2.4/conf/httpd.conf //编辑httpd的主配置文件
<Directory />
AllowOverride none
Require all denied
</Directory>
改成:
<Directory />
AllowOverride none
Require all granted
</Directory> //目的允许所有请求访问
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
改成:
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
- LoadModule php5_module modules/libphp5.so注释掉,并改成
LoadModule php7_module modules/libphp7.so
测试配置文件是否正确
[root@host ~]#/usr/local/apache2.4/bin/apachectl -t //检查配置文件是正确
Syntax OK
[root@host ~]#/usr/local/apache2.4/bin/apachectl start //启动http
[root@host ~]#cd /usr/local/apache2.4/conf
[root@host conf]#netstat -lnp |grep httpd //如若不行yum install net-tools
tcp6 0 0 :::80 :::*
[root@host conf]#curl localhost
<html><body><h1>It works!<h1><body><html>
//使用curl命令简单测试,显示了就是成功
[root@host conf]#vi /usr/local/apache2.4/htdocs/test.php
<?php
echo “php解析正确”
?>
[root@host conf]#curl localhost/1.php
php解析正确 //如显示此信息则PHP解析正确