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 行配置文件默认已经存在, 所以只需要添加最后一行就可以了
- <IfModule dir_module>
- DirectoryIndex index.html index.php
- </IfModule>
- 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
- <?php
- phpinfo( ); ## 此函数可显示 PHP 服务器的环境信息
- ?>
然后在客户端访问, http:// 服务器 IP 地址 / index.php 即可访问成功
测试 php 能否成功连接 mysql, 切记修改 mysql 的密码
- vim /usr/local/httpd/htdocs/index2.php
- <?php
- $link=mysqli_connect('localhost','root','123123'); ## 连接 MySQL 数据库
- if($link) echo "恭喜你, 数据库连接成功啦!!"; ## 连接成功时的反馈消息
- mysqli_close($link); ## 关闭数据库连接
- ?>
然后在客户端访问, 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 即可访问成功
来源: http://www.bubuko.com/infodetail-2737113.html