目录
一.LAMP介绍
LAMP 架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和 相关软件,能够提供动态 Web 站点服务及其应用开发环境。LAMP 是一个缩写词,具 体包括 Linux 操作系统、Apache 网站服务器、MySQL 数据库服务器、PHP(或 Perl、 Python)网页编程语言。本章将以源码编译的方式搭建 LAMP 环境,能够满足企业定 制化的需求。 在构建 LAMP 平台时,各组件的安装顺序依次为 Linux、Apache、MySQL、PHP。 其中 Apache 和 MySQL 的安装并没有严格的顺序;而 PHP 环境的安装一般放到最后, 负责沟通 Web 服务器和数据库系统以协同工作。
二.YUM设置
如果yum可以正常使用,直接在线安装以下各种编译工具就可以下一步了。
yum -y install \
gcc \ #C语言编译器
gcc-c++ \ #C++编译器
make \ #源代码编译器
pcre-devel \ #pcre是一个perl函数库,包括perl 兼容正则表达式
expat-devel \ #perl的接口开发包
perl \ #支持网站解析HTML,XML文件
lbzip2 #perl语言编译器
如果不能正常使用yum,需要先重新配置Yum源再进行上面的步骤。重新配置方法可以尝试下面的(这里修改为阿里源)
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
安装wget
yum install -y wget
备份本地源的配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
从阿里云下载新的配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
更新epel仓库
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
更新缓存
yum makecache
安装常用小工具
yum install -y net-tools
三.编译安装HTTP服务
安装Apache所需软件
-
apr-1.6.2.tar.gz
-
apr-util-1.6.0.tar.gz
-
httpd-2.4.29.tar.gz
1.将上述三个软件包上传至根下的opt目录
[root@localhost opt]# cd /opt #进入/opt目录下
[root@localhost opt]# ll #查看
[root@localhost opt]#
apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2
2.解压软件包,并将apr-1.6.2 移动到httpd-2.4.29/srclib/apr目录下、将apr-util-1.6.0移动到httpd-2.4.29/srclib/apr-util目录下
[root@localhost opt]# tar xf apr-1.6.2.tar.gz
[root@localhost opt]# tar xf apr-util-1.6.0.tar.gz
[root@localhost opt]# tar xf httpd-2.4.29.tar.bz2
//命令执行失败可能是应为没有bzip2,yum -y install bzip2下载一个再执行就解决了
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util
3. 配置环境依赖,编译及安装
[root@localhost opt]# cd /opt/httpd-2.4.29/
#执行配置
./configure \
--prefix=/usr/local/httpd \
--enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
#编译,安装
make -j 2 && make install # make -j 2 的2是你核心数,最大不要超过虚拟机的核心数(越多这一
步完成速度越快)
4.安装过后,为apache配置文件和命令创建软连接 。
# 优化配置文件路径,并把httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
# 这两条命令的实际效果是使得Apache服务器能够更好地融入到整个系统环境中,提高了系统的可移植性、
可维护性和可用性
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/
5. 配置apache服务,完成后检查配置并启动服务。
#以centos7为例
vim /lib/systemd/system/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
# 检查语法
httpd -t 或 apachectl -t
# 启动服务
systemctl start httpd.service
netstat -anpt | grep 80
四.安装Mysql
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake
2.上传mysql安装包,进行解压
tar xf mysql-5.7.17.tar.gz -C /opt
# Boost 1.59.0是一个开源的C++库,它为C++标准库提供了广泛的扩展
tar xf boost_1_59_0.tar.gz -C /usr/local/
mv /usr/local/boost_1_59_0 /usr/local/boost
3.配置相关文件,编译及安装
cd /opt/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=/usr/local/boost \
-DWITH_SYSTEMD=1
#编译及安装
make -j 2 && make install
创建普通用户管理mysql
# 创建普通用户管理mysql
useradd -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf
#修改配置文件
vim /etc/my.cnf
[client]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set=utf8
socket=/usr/local/mysql/mysql.sock
auto-rehash
[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_
VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_C
ONCAT,ANSI_QUOTES
4. 设置环境变量,方便调用命令
#设置环境变量,方便调用mysql命令
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile
5. 初始化数据库,设置服务
#初始化数据库
cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data
#Mysql服务
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service
/usr/lib/systemd/system/
systemctl daemon-reload #刷新识别
systemctl start mysqld.service #开启服务
systemctl enable mysqld #开机自启动
netstat -anpt | grep 3306 #查看端口
# 给root账号设置密码
mysqladmin -u root -p password "123456"
# 直接回车
# root远程访问权限
mysql -uroot -p
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456' with
grant option;
mysql> flush privileges;
五.安装PHP环境
#安装GD库和GD库关联程序,用来处理和生成图片
yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
cd /opt
tar zxvf php-7.1.24.tar.gz
2.配置相关文件,编译及安装
cd /opt/php-7.1.24/
./configure \
--prefix=/usr/local/php7 \
--with-apxs2=/usr/local/httpd/bin/apxs \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-config-file-path=/usr/local/php7 \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer
make -j 2 && make install
#php配置文件
#复制模板文件,并进行修改
cp /opt/php-7.1.24/php.ini-development /usr/local/php7/php.ini
vim /usr/local/php7/php.ini
# 1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
# 939行--取消注释,修改
date.timezone = Asia/Shanghai
#优化把 PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
ln -s /usr/local/php7/bin/* /usr/local/bin/
3.修改 apache 配置,让其支持 php
# 修改Apache配置文件让Apache支持PHP
vim /etc/httpd.conf
# 添加index.php //255,256,257为文件内行号
255 <IfModule dir_module>
256 DirectoryIndex index.html index.php
257 </IfModule>
# 在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php7的模块是否存在
LoadModule php7_module modules/libphp7.so
4.测试php网页
#创建、编辑php页面文件
# rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>
#重启服务
systemctl restart httpd.service
六.部署论坛
1.数据库准备
mysql -u root -p
mysql> CREATE DATABASE bbs;
# 把bbs数据库里面所有表的权限授予给bbsuser,并设置密码
mysql> GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY 'admin123';
# 刷新数据库
mysql> flush privileges;
2.解压
# 解压论坛压缩包
unzip Discuz_X3.4_SC_UTF8.zip -d /opt/dis
#上传站点更新包
cd /opt/dis/dir_SC_UTF8
cp -r upload/ /usr/local/httpd/htdocs/bbs
#切换论坛目录
cd /usr/local/httpd/htdocs/bbs
#更改论坛目录属主
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data
问题解决后,应该可以访问论坛
七.其他
mysql -u root -p
CREATE DATABASE sky;
GRANT all ON sky.* TO 'skyuser'@'%' IDENTIFIED BY 'admin123';
flush privileges;
vim /usr/local/http/htdocs/index.php
<?php
$link=mysql_connect('192.168.226.128','skyuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
mysql_close();
?>