LAMP平台部署及应用

LAMP平台的应用优势

  • 成本低廉:构成组件都是开放源代码的软件,可以自由获得和免费使用,在技术方面和许可证方面没有太严格的限制,大大降低了实施成本
  • 可定制:拥有大量的而外组件和可扩展功能的模块,能足够大部分企业应用的定制需求,甚至可以自行开发、添加新的功能
  • 易于开发:基于LAMP平台的动态网站中,页面代码简洁,于HTML标记语言的结合度非常好。
  • 方便易用:PHP、Perl等属于解释性语言,开发的各种web程序不需要编译,方便进行移植使用。
  • 安全和稳定:大量程序员在关注并持续改进LAMP平台的各个组件,发现问题能很快得到解决,这得益于其开源的优势。

一、部署LAMP平台

一、安装Apache

1、准备工作

为了避免发生端口冲突、程序冲突等现象,建议卸载使用RPM方式安装httpd。

rpm -e httpd --nodeps    #卸载httpd

Apache的配置及运行需要apr、pcre等软件包的支持,因此应预先安装这些软件及其开发包。下面使用挂载光盘,从光盘镜像中预先安装。

安装依赖包:

rpm -ivh apr-1.4.8-3.el7.x86_64.rpm
rpm -ivh apr-devel-1.4.8-3.el7.x86_64.rpm
rpm -ivh cyrus-sasl-2.1.26-21.el7.x86_64.rpm
rpm -ivh cyrus-sasl-devel-2.1.26-21.el7.x86_64.rpm (此包的依赖包为上一个安装包,安装前需要安装上一个)
rpm -ivh expat-devel-2.1.0-10.el7_3.x86_64.rpm
rpm -ivh libdb-devel-5.3.21-20.el7.x86_64.rpm
rpm -ivh openldap-devel-2.4.44-5.el7.x86_64.rpm
rpm -ivh apr-util-1.5.2-6.el7.x86_64.rpm
rpm -ivh apr-util-devel-1.5.2-6.el7.x86_64.rpm
rpm -ivh pcre-devel-8.32-17.el7.x86_64.rpm
rpm -ivh pcre-8.32-17.el7.x86_64.rpm

安装gcc编译器:

3.安装gcc编译器
rpm -ivh kernel-headers-3.10.0-693.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-196.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-196.el7.x86_64.rpm
rpm -ivh libgomp-4.8.5-16.el7.x86_64.rpm
rpm -ivh libpcap-1.5.3-9.el7.x86_64.rpm
rpm -ivh ppp-2.4.5-33.el7.x86_64.rpm
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.8.5-16.el7.x86_64.rpm
rpm -ivh libstdc++-devel-4.8.5-16.el7.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-16.el7.x86_64.rpm

2、源码编译及安装

上传或下载httpd源码包

1)解包

tar zxvf httpd-2.4.25.tar.gz -C /usr/src    #将源码包解压到指定的位置
cd /usr/src/httpd-2.4.25    

2)配置

./configure \
--prefix=/usr/local/httpd\    #指定将httpd服务程序安装到哪个目录下
--enable-so\                  #启用动态加载模块支持,使httpd具备进一步扩展功能的能力
--enalbe-rewrite\             #启用网页地址重写功能,用于网站优化及目录迁移维护     
--enable-charset-lite\        #启动字符集支持,以便支持使用各种字符集编码的网页
--enable-cgi                  #启用CGI脚本程序支持,便于扩展网站的应用访问能力
 &&make &&make install

3)确认安装结果

由于指定的安装目录为/usr/local/httpd,因此httpd服务的各种程序、模块、帮助文件等都将复制到此目录下。

在安装后的/usr/local/httpd目录下,主要子目录的用途如下:

  • /usr/local/httpd/bin:存放httpd服务的各种执行程序文件,包括主程序httpd、服务控制工具apachectl等。
  • /usr/local/httpd/cgi-bin:存放各种CGI程序文件
  • /usr/local/httpd/logs:存放httpd服务的日志文件
  • /usr/local/httpd/conf:存放httpd服务的各种配置文件,包括配置文件httpd.conf、增强配置子目录wxtra等
  • /usr/local/httpd/htdocs:存放网页文档,包括默认首页文件index.html等
  • /usr/local/httpd/modules:存放httpd服务的各种模块文件

4)优化

通过源码编译安装的httpd服务,程序路径并不在默认的搜索路径上,为了使该服务在使用时更加方便,可以为相关程序添加符号链接

ln -s /usr/local/httpd/bin/* /usr/local/bin
ls -l /usr/local/bin/httpd /usr/local/bin/apachectl

测试

3、添加httpd系统服务

将编译安装的程序添加为系统服务有两种方式

  1. 通过chkconfig命令添加为系统服务,然后由systemctl进行管理
  2. 在/lib/systemd/system/目录下,手动编写以 .service结尾的单元(unit)配置文件

1)使用chkconfig添加系统服务

复制httpd自带的脚本到/etc/init.d/目录下,起名为httpd,并在文件开头添加chkconfig识别配置,服务识别参数,在级别3,5中启动,启动和关闭的顺序分别为,85、21.

cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd

 

2)建立httpd.service文件

vim /lib/systemd/system/httpd.service
[Unit]
Description=The Apache HTTP Server    #设置服务单元描述字符串
After=network.target    #设置服务单元的启动先后顺序。network.target表示启动时先启动netwoek.target,后启动httpd.service,关闭时顺序相反

[Service]
Type=forking    #设置服务进程的启动类型。需要注意的是,当启动类型为forking时需要同时设置PIDFile配置项,以帮助systemd准确定位到服务的主进程。
PIDFile=/usr/local/httpd/logs/httpd.pid    #设置服务的守护进程的PID文件
ExecStart=/usr/local/bin/apachectl $OPTIONS    #设置服务启动时执行的命令
ExecReload=/bin/kill -HUP $MAINPID    #设置服务重新加载时执行的命令
KillMode=process    #设置在单元停止时,杀死进程的方法。process表示仅杀死主进程
Restart=on-failure    #设置服务进程正常退出、异常退出、被杀死、超时的时候,是否重启该服务。on-failure表示仅在进程异常退出时重启
RestartSec=42s    #设置在重启服务前暂停多长时间,默认为100ms

[Install]
WantedBy=graphical.target    #设置该服务所在的Target(运行目标),“graphical.target(图形界面多用户系统)”是指该服务所在的Target(运行目标)
                        

httpd.service文件编写完成后,执行如下命令设置httpd服务开机启动

systemctl enable httpd    #设置httpd服务开机自启
systemctl is-enabled httpd    #查看httpd服务的自启动状态

二、安装MySQL

为了避免发生程序冲突,使用RPM方式安装php及相关依赖包。

rpm -q mysql-server mysql
rpm -ivh ncurses-devel-5.9-14.20130511.el7_4.x86_64.rpm    #使用光盘自带的ncurses-devel包
yum -y install gcc gcc-c++ ncurses-devel perl autoconf

mysql5.x系列版本需要cmake编译安装,所以先安装cmake包。

tar zxvf cmake-2.8.6.tar.gz -C /usr/src
cd /usr/src/cmake-2.8.6
./configure && gmake && gmake install

源码编译及安装mysql

groupadd mysql
useradd -M -s /sbin/nologin mysql -g mysql    #创建mysql用户,加入mysql组,不允许登陆系统
tar zxvf mysql-5.6.36.tar.gz -C /usr/src
cd /usr/src/mysql-5.6.36
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    #指定mysql数据库程序的安装目录
-DSYSCONFDIR=/etc \    #指定初始化参数文件目录
-DDEFAULT_CHARSET=utf8 \    #指定默认使用的字符集编码utf-8
-DDEFAULT_COLLATION=utf8_general_ci \    #指定默认使用的字符集校对规则,utf_general_ci是适用于utf-8字符集的通用规则
-DWITH_EXTRA_CHARSETS=all    #指定额外支持的其他字符集编码
make && make install

安装后的调整

对数据库目录进行权限设置

chown -R mysql:mysql /usr/local/mysql

建立配置文件

rm -rf /etc/my.cnf
cp /usr/src/mysql-5.6.36/support-files/my-default.cnf /etc/my.cnf
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
. /etc/profile

初始化数据库,为能正常使用需要初始化数据库,用mysql用户身份执行mysql_install_db脚本,指定数据存放目录

/usr/local/mysql/scripts/mysql_install_db \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

 

错误:FATAL ERROR: please install the following Perl modules before executing /usr/local/mysql/scripts/mysql_install_db:
Data::Dumper
解决方案:安装autoconf包

yum -y install autoconf 此包安装时会安装Data:Dumper模块
错误:-bash: /usr/local/mysql/scripts/mysql_install_db: /usr/bin/perl: 坏的解释器: 没有那个文件或目录
解决方案:安装yum install -y perl perl-devel。

三、安装php软件包

1)为了避免发生程序冲突,使用RPM方式安装php及相关依赖包。

卸载php、php-cli、php-ldap、php-common、php-mysql等,另外需要安装zlib-devel和libxml-devel包

rpm -e php php-cli php-ldap php-common php-mysql --nodeps   
rpm -ivh zlib-devel-1.2.7-17.e17.x86_64.rpm
rpm -ivh libxml2-devel-2.9.1-6.e17_2.3.x86_64.rpm
rpm -ivh xz-devel-5.2.2-1.e17.x86_64.rpm

还需要gcc

2)安装扩展工具包

安装libmcrypt

tar zxvf libmcrypt-2.5.8.tar.gc -C /usr/src
cd /usr/src/libmcrypt-2.5.8
./configure && make && make install
ln -s /usr/local/lib/libmcrypt.* /usr/lib/    #添加符号链接

安装mhash

tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src
cd /usr/src/mhash-0.9.9.9
./configure && make && make install
ln -s /usr/local/lib/libmhash* /usr/lib

安装mcrypt

 

 

tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src
cd /usr/src/mcrypt-2.6.8
export LD_LIBRARY_PATH=/usr/local/lib    #解决configure配置报错
./configure && make && make install

3)编译安装PHP

tar zxvf php-5.5.38.tar.gz -C /usr/src
cd /php-5.5.38
./configure \
--prefix=/usr/local/php5 \    #指定PHP程序安装的目录
--with-mcrypt \               #加载数据加密等扩展工具支持
--with-apxs2=/usr/local/httpd/bin/apxs \    #设置Apache HTTP Server提供的apxs模块支持程序的文件位置
--with-mysql=/usr/local/mysql \    #设置MySQL数据库服务程序的安装位置
--with-mysqli=/usr/local/mysql/bin/mysql_config \    #添加mysqli扩展支持
--with-config-file-path=/usr/local/php5 \    #设置php的配置文件php.ini将要存放的位置
--enable-mbstring    #启用多字节符串功能,以便支持中文等代码
make && make install

设置LAMP组件环境

php.ini配置调整

cp /usr/local/php-5.5.38/php.ini-development /usr/local/php5/php.ini
vim /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支持

添加ZendGuardLoader模块

tar zxvf zend-loader-php5.5-linux_x86_updatel.tar.gc -C /usr/src
cd /usr/src/zend-loader-php5.5-linux_x86
cp ZendGuardLoader.so /usr/local/php5/lib/php    #将目录下的模块文件复制到PHP程序的模块文件夹

修改php.ini配置文件,添加加载及启用ZendGuardLoader.so模块的配置语句

vim /usr/local/php5/php.ini
....
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1

httpd.conf配置调整

要使httpd服务器支持PHP页面解析功能,需通过LoadModule配置项加载PHP程序的模块文件,并通过AddType配置项添加对“.php”类型网页文件的支持。修改Directorylndex配置行,添加index.php配置项,以识别常见的PHP首页文件

vim /usr/local/httpd/conf/httpd.conf
...
LoadModule php_module modules/libphp5.so
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
AddType application/x-httpd-php .php
#Include conf/extra/httpd-vhosts.conf
/usr/local/httpd/bin/apachectl restart     #重启服务以更新配置

#################################################################################################

注释一下,避免冲突

 

#################################################################################################

编写一个PHP网页测试页

vim /usr/local/httpd/htdocs/test1.php

<?php
phpinfo();
?>

通过浏览器访问http://192.168.206.138/test1.php

####################################################################################################

 部署phpMyAdmin

phpMyAdmin是一个使用PHP语言编写,用来管理MySQL数据库的Web应用系统,通过该套件提供的网页界面,能够非常容易地对MySQL数据库进行管理和维护

解包并复制到网站目录

tar zxvf phpMyAdmin-4.7.2-all-languages.tar.gz 
mv phpMyAdmin-4.7.2-all-languages /usr/local/httpd/htdocs/phpMyAdmin

建立phpMyAdmin的Web管理界面

将phpMyAdmin套件复制到网站目录后,需要创建配置文件方可正常使用。默认提供的样例配置文件config.sample.inc.php,需要参照该文件内容建立config.inc.php配置文件。查找文件中blowfish_secret行,默认已经设置了一个短语密钥,可以根据需要进行修改

cd /usr/local/httpd/thdocs/phpMyAdmin
cp config.sample.inc.php config.inc.php

 访问phpMyAdmin的Web界面

使用MySQL数据库用户登录

#####################################################################################################

 Linux运维中的小学生,还望大佬们多多批评

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值