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系统服务
将编译安装的程序添加为系统服务有两种方式
- 通过chkconfig命令添加为系统服务,然后由systemctl进行管理
- 在/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运维中的小学生,还望大佬们多多批评