centos7 install LAMP

LAMP四大组件
Linux操作系统:作为LAMP架构的基础,提供用于支撑web站点的操作系统能够与其他三大组件提供更好的稳定性与兼容性。
Apache网站服务器:作为LAMP的前端,是一款功能强大,稳定性好的web服务器程序。
MySQL数据库服务器:作为LAMP的后端,是一款非常流行的,开源的关系型数据库系统。
PHP/Perl/Python网页编程语言:作为三种开发动态网页的程序语言,负责解析动态网页文件,并提供web应用程序的开发和运行环境。

LAMP的优势
成本低廉、可定制性强、易于开发、方便易用、安全和稳定

[root@localhost ~]# ls ##事先准备好相关软件包
httpd-2.4.25.tar.gz mcrypt-2.6.8.tar.gz php-5.5.38.tar.gz
mhash-0.9.9.9.tar.gz phpMyAdmin-4.7.2-all-languages.tar.gz
cmake-2.8.6.tar.gz libmcrypt-2.5.8.tar.gz mysql-5.6.36.tar.gz zend-loader-php5.5-linux-x86_64_update1.tar.gz

[root@localhost ~]# mount /dev/cdrom /mnt/ ##挂载centos7安装光盘
[root@localhost ~]# rm -rf /etc/yum.repos.d/*

[root@localhost ~]# vi /etc/yum.repos.d/local.repo ##配置本地yum源
[local]
name=local
baseurl=file:///mnt
enable=1
gpgcheck=0
:wq

[root@localhost ~]# yum -y install apr apr-devel cyrus-sasl-devel expat-devel libdb-devel openldap-devel apr-util-devel apr-util pcre-devel pcre

解压httpd源码包
[root@localhost ~]# tar zxf httpd-2.4.25.tar.gz -C /usr/src/
进入解压后的路径
[root@localhost ~]# cd /usr/src/httpd-2.4.25/
配置configure可执行文件
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
编译
make
编译安装
make install
查看安装路径文件,确定已安装成功
ls /usr/local/httpd/
优化执行路径
ln /usr/local/httpd/bin/* /usr/local/bin
ls -l /usr/local/bin/httpd /usr/local/bin/apachectl
查看httpd的版本信息
httpd -v
添加httpd系统服务
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd
vi /etc/init.d/httpd
chkconfig: 35 85 21 ##键入

chkconfig --add httpd

建立httpd.service配置文件
vim /lib/systemd/system/httpd.service ##建立httpd.service配置文件
[Unit]
Description=The Apache HTTP Server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/httpd/logs/httpd.pid
ExecStart=/usr/local/bin/apachectl $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

设置开机启动
[root@localhost ~]# systemctl enable httpd.service ##设置开机自启
[root@localhost ~]# systemctl is-enabled httpd.service

MySQL Install Manual
一、MySQL 的编译安装
准备工作
1、查看是否已经安装过MySQL,如果安装过建议使用(-e)将其卸载。
[root@localhost ~]# rpm -q mysql-server mysql ##查看是否有安装过MySQL
[root@localhost ~]# yum -y install ncurses-devel ##安装ncurses-devel支持包
2、MySQL 5.X 版本需要cmake编译安装,所以需要安装cmake包。
[root@localhost ~]# tar zxf cmake-2.8.6.tar.gz
[root@localhost ~]# cd cmake-2.8.6/
[root@localhost cmake-2.8.6]# ./configure
[root@localhost cmake-2.8.6]# gmake && gmake install
源码编译及安装
1、创建运行用户(mysql),此用户不需要登录系统,可以不创建宿主目录。
[root@localhost cmake-2.8.6]# groupadd mysql
[root@localhost cmake-2.8.6]# useradd -M -s /sbin/nologin mysql -g mysql
2、解压下载好的源码包,解压目录/usr/src
[root@localhost ~]# tar zxf mysql-5.6.36.tar.gz -C /usr/src/
[root@localhost ~]# cd /usr/src/mysql-5.6.36/
3、配置mysql、以便支持更多功能
[root@localhost mysql-5.6.36]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

    DCMAKE_INSTALL_PREFIX                   ##指定MySQL安装到那个路径下
    DSYSCONFDIR                             ##指定初始化文件目录
    DDEFAULT_CHARSET                        ##指定默认使用的字符集编码(如:utf8)
    DDEFALUT_COLLATION                      ##指定默认使用的字符集校对规则,utf8_general_ci是适用于utf-8字符集的通用规则
    DWITH_HXTRA_CHARSETS                    ##指定额外支持的其他字符集编码
4、编译安装
    [root@localhost mysql-5.6.36]# make
    [root@localhost mysql-5.6.36]# make install

安装后的其他调整
1、对数据库进行权限设置、属主:属组
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
2、建立配置文件,因centos7默认支持mariadb数据库,所以系统默认的/etc/my.cof配置文件是MariaDB的配置文件、
而在MySQL源目录中的support-files文件夹下,提供了MySQL数据可的样本配置文件my-default.cof文件,所以
我们需要拷贝my-default.cof文件到/etc路径下,并删除my.cof

    [root@localhost mysql-5.6.36]# rm -rf /etc/my.cof
    [root@localhost mysql-5.6.36]# cp support-files/my-default.cnf /etc/my.cnf
    [root@localhost ~]# vi /etc/my.cnf                                              ##手动指定pid文件

    pid-file=/usr/local/mysql/data/mysql.pid

    :wq

3、初始化数据库,使用户mysql可以正常登陆,所以需要运行用户mysql的身份执行初始化脚本mysql_install_db,指定数据库存放路径等。
    [root@localhost mysql-5.6.36]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/

4、设置环境变量,为了方便在认可目录下使用mysql命令,需要在/etc/profile设置环境变量
    [root@localhost mysql-5.6.36]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    [root@localhost ~]# source /etc/profile

5、添加系统服务
    [root@localhost mysql-5.6.36]# cp support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
    [root@localhost mysql-5.6.36]# chmod +x /usr/local/mysql/bin/mysqld.sh
    [root@localhost ~]# vi /usr/lib/systemd/system/mysqld.service

    [Unit]
    Description=MySQL Server
    After=network.target

    [Service]
    User=mysql
    Group=mysql

    Type=forking
    PIDFile=                                                ##PID文件为空
    ExecStart=/usr/local/mysql/bin/mysqld.sh start
    ExecStop=/usr/local/mysql/bin/mysqld.sh stop

    [Install]
    WantedBy=multi-user.target

    :wq

    [root@localhost ~]# systemctl start mysqld              ##启动MySQL
    [root@localhost ~]# systemctl enable mysqld             ##设置为开机启动
    [root@localhost ~]# systemctl status mysqld             ##查看启动状态
    [root@localhost ~]# netstat -anpt | grep mysqld         ##过滤mysql端口状态

二、访问MySQL数据库
1、登陆MySQL服务器:默认用户为root 密码为空
1)无密码登陆
[root@localhost ~]# mysql -u root ##“-u”选项用于指定认证用户
2)有密码登陆
[root@localhost ~]# mysql -u root -p ##“-p”选项来进行密码校验
3)设置登录mysql的root用户密码
[root@localhost ~]# mysqladmin -u root password 123123
2、执行MySQL操作语句
mysql> STATUS; ##"STATUS;"语句可以查看当前数据库的基本状态
3、退出mysql操作环境
mysql> exit ##退出可以使用"exit"或"quit"命令退出mysql编辑器

安装PHP服务
根据实际情况可卸载PHP相关软件依赖,另外需要安装zlib-devel xz-devel libxml2-devel包
[root@localhost ~]# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
错误:未安装软件包 php
错误:未安装软件包 php-cli
错误:未安装软件包 php-ldap
错误:未安装软件包 php-common
错误:未安装软件包 php-mysql
[root@localhost ~]# yum -y install zlib-devel xz-devel libxml2-devel
yum -y install libxml2-devel

    安装扩展工具;在实际应用中,一部分基于PHP开发的web应用系统会需要额外的扩展工具,如数据加密
                  工具,libmcrypt,mhash,mcrypt等(可以从站点http://sourceforge.net下载)。安
                  装PHP软件包之前应该先安装好这些工具。
    1)安装libmcrypt
    [root@localhost ~]# tar zxf libmcrypt-2.5.8.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/libmcrypt-2.5.8/
    [root@localhost libmcrypt-2.5.8]# ./configure
    [root@localhost libmcrypt-2.5.8]# make && make install
    [root@localhost libmcrypt-2.5.8]# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
    2)安装mhash
    [root@localhost ~]# tar zxf mhash-0.9.9.9.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/mhash-0.9.9.9/
    [root@localhost mhash-0.9.9.9]# ./configure
    [root@localhost mhash-0.9.9.9]# make && make install
    [root@localhost mhash-0.9.9.9]# ln -s /usr/local/lib/libmhash.* /usr/lib/
    3)安装mcrypt
    [root@localhost ~]# tar zxf mcrypt-2.6.8.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/mcrypt-2.6.8/
    [root@localhost mcrypt-2.6.8]# ./configure
    [root@localhost mcrypt-2.6.8]# export LD_LIBRARY_PATH=/usr/local/lib                ##解决上一条./configure配置报错问题
    [root@localhost mcrypt-2.6.8]# ./configure
    [root@localhost mcrypt-2.6.8]# make && make install

编译安装PHP
    1)解包
    [root@localhost ~]# tar zxf php-5.5.38.tar.gz -C /usr/src/                          ##解压缩PHP源码包
    [root@localhost src]# cd /usr/src/php-5.5.38/
    2)配置:在定制PHP的配置选项时,最关键的就是制定httpd,mysqld的安装路径,以便添加相关支出路径,
    使LAMP各个组件协同工作。除此之外,还可以制定安装路径,启用多字节支持,加密扩展支持等。
    ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring

    --prefix:制定将PHP程序安装到哪个目录下(/usr/local/php5)
    --with-mcrypt:加载数据加密等扩展支持功能
    --with-apxs2:设置Apache HTTP Server提供的apxs模块支持程序的文件位置
    --with-mysql:设置MySQL数据库服务程序的安装位置
    --with-mysqli:添加mysqli扩展支持
    --with-config-file-path:设置PHP的配置文件php.ini将要存放的位置
    --enable-mdstring:启用多字节字符串功能,以便支持中文等代码
    3)编译及安装:编译过程极慢,若期间未出现错误,接下来就可以对LAMP组件进行适当的配置,并验证是否能够协同工作。
    [root@localhost php-5.5.38]# make && make install

设置LAPM组键环境
1、php.ini配置调整
1)php.ini的建立及基本设置;安装好后PHP,服务器并不会自定创建php.ini配置文件,但在源码目录下提供了两个样例
配置文件,分别对应开发环境,生产环境。
/usr/src/php-5.5.38/php.ini-development ##开发版样例环境,用于学习测试
/usr/src/php-5.5.38/php.ini-production ##生产版样例环境,用于实际运营
选择其中一个样例文件,复制到PHP配置文件目录、/usr/local/php5下,并改名为php.ini,文件中以分号开头的内容为注释信息
[root@localhost ~]# cp /usr/src/php-5.5.38/php.ini-development /usr/local/php5/php.ini
[root@localhost ~]# grep -v "^;" /usr/local/php5/php.ini |grep -v "^$"
[PHP]
engine = On
short_open_tag = Off
asp_tags = Off
......
通过修改php.ini文件中的配置内容,可以控制PHP网页的直行特性,如是否允许用户上传文件,设置上传文件的大小限制,设置
默认使用的字符集,加载额外的扩展模块等。如没有特殊要求,可以直接使用默认配置,不做任何修改。
[root@localhost ~]# vi /usr/local/php5/php.ini

    ......  //省略部分内容
    default_charset = "utf-8"                           ##设置默认字符集为utf-8 
    file_uploads = On                                   ##允许通过PHP网页上传文件
    upload_max_filesize = 2M                            ##允许上传的文件大小限制
    max_file_uploads = 20                               ##每个HTTP请求最多允许上传的文件数
    post_max_size = 8M                                  ##每次通过表单POST提交的数据量限制
    short_open_tag = On                                 ##允许识别PHP短语法标记,即
    extension=php_mysqli.dll                            ##添加mysql支持
    2)添加ZendGuardLoader优化模块
    为了进一步提高程序的执行效率,优化页面加载速度,可以为PHP添加Zend公司开发的ZendGuardLoade”优化模块。若需要加密PHP代码以限
    制未经授权的分发,还可以购买该公司的ZendGuard软件。该模块可以在zend公司官网http://www.zend.com下载。

    将下载好的ZendGuardLoade包解压缩,并将源码目录下的模块文件复制到PHP程序的模块文件夹
    [root@localhost ~]# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/
    [root@localhost ~]# cd /usr/src/zend-loader-php5.5-linux-x86_64/
    [root@localhost zend-loader-php5.5-linux-x86_64]# cp ZendGuardLoader.so /usr/local/php5/lib/php

    修改php.ini配置文件,添加加载及启用ZendGuardLoade.os模块的配置语句
    [root@localhost ~]# vi /usr/local/php5/php.ini
    zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
    zend_loader.enable=1
2、httpd.conf配置调整
    要让httpd服务器支持PHP页面解析功能,需通过LoadModule配置项加载程序的模块文件,并通过AddType配置项添加对”.php",类型网页文
    件的支持,除此以外还应修改Directoryindex配置行,添加inaex.php项,以识别常见的PHP首页文件。
    [root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
    LoadModule php5_module   modules/libphp5.so                             ##1——4行配置文件默认已经存在,所以只需要添加最后一行就可以了
    
        DirectoryIndex index.html index.php
    
    AddType application/x-httpd-php .php
    上述内容中,LoadModule行在安装PHP过程中已经自定添加,其中php5_module表示为模块名称,modules/libphp5.so表示为模块文件位置
    AddType行需要手动添加、DirectoryIndex行在原有的基础上对其进行修改就可以了。

测试LAMP协同工作
1、测试PHP网页是否能正常工作
测试apache是否支持php,在/usr/local/httpd/htdocs下边创建以下文件
vim /usr/local/httpd/htdocs/index.php
phpinfo( ); ##此函数可显示PHP服务器的环境信息
?>

    然后在客户端访问,http://服务器IP地址/index.php   即可访问成功

    测试php能否成功连接mysql,切记修改mysql的密码
    vim /usr/local/httpd/htdocs/index2.php
    

    然后在客户端访问,http://服务器IP地址/index2.php   即可访问成功

部署phpMyAdmin系统
phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统。通过该套件提供的网页界面,
即便是对SQL语句不太熟悉的人,也能够非常容易地对MySQL数据库进行管理和维护。
phpMyAdmin的源码包可以从其官方站点http://www.phpadmin.net中下载。下面以多国语言版源码包
phpMyAdmin-4.7.2-all-languages.tar.gz为例介绍ppMyAdmin套件的部署过程。

    1.解包,并复制到网站目录
    [root@localhost ~]# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz
    [root@localhost ~]# mv phpMyAdmin-4.7.2-all-languages /usr/local/httpd/htdocs/phpMyAdmin
    2、建立配置文件config.inc.php
    [root@localhost ~]# cd /usr/local/httpd/htdocs/phpMyAdmin/
    [root@localhost phpMyAdmin]# cp config.sample.inc.php config.inc.php

    3.访问phpMyAdmin的Web管理界面然后在客户端访问,http://服务器IP地址/phpMyAdmin   即可访问成功