LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。
平台linux:LAMP架构的系统环境
前台apache:服务器
后台MySQL(后端数据库):存放数据
中间件(中间连接)PHP/Perl/Python:三种开发动态网页的编程语言。负责解释动态网页文件,做前台和后台的协同工作
在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通 Web 服务器和数据库系统以协同工作。
准备好linux系统环境
前置环境的初始化操作:
1.关闭防火墙和核心防护
vim /etc/selinux/config
SELINUX=disabled
2.安装Apache Web服务器
3.启动Apache Web服务器并设置开机自启
4.安装MySQL数据库
5.启动MySQL数据库并设置开机自启
6.运行MySQL安全脚本以加强安全性
7.安装PHP及相关模块
8.重启Apache Web服务器以使PHP模块生效
9.创建一个PHP测试文件以测试LAMP环境是否正常
将以下代码复制到文件中并保存:
<?php phpinfo(); ?>
10.在Web浏览器中输入服务器的IP地址或域名,加上/info.php,例如http://your_server_IP_address/info.php,如果看到PHP信息页面,则表示LAMP环境已经成功搭建
[root@localhost ~]# systemctl stop firewalld.service #关闭防火墙
[root@localhost ~]# setenforce 0#关闭核心防护
[root@localhost ~]# vim /etc/selinux/config
?
yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl
yum -y install?
gcc?
#C语言的编译器
gcc-c++?
#C++的编译器
make?
#源代码编译器(源代码转换成二进制文件)
pcre?
#pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel?
#perl的接口开发包
expat-devel
#用于支持网站解析HTML、XML文件
perl
#perl语言编译器
四、配置软件模块
[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?
?
cd opt/httpd-2.4.29/srclib
mv /opt/apr-1.6.2 ?./apr? ? ? ? ? ? ? ? ? ? ? #重命名为apr
mv /opt/apr-util-1.6.0 ./apr-util? ? ? ? ? ?#重命名为apr-util
? cd ..#返回上一级目录在opt的http-2.4.29目录下
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi
cd /opt/httpd-2.4.29/
./configure \ --prefix=/usr/local/httpd \
#指定将 httpd 服务程序的安装路径
--enable-so \
#启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-rewrite \
#启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护 --
enable-charset-lite \
#启动字符集支持,以便支持使用各种字符集编码的页面
--enable-cgi
#启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
?
make
#make -j 4?表示开4核同时进行编译
make install
该目录中存有apache的配置文件(在conf里)
?
[root@localhost local]# cd ./httpd/conf
[root@localhost conf]# ls
extra ?httpd.conf ?magic ?mime.types ?original
[root@localhost conf]# vim httpd.conf?
通过路径去执行:
cd /usr/local/httpd/bin
直接执行apache和httpd命令
?通过systemctl去执行:
方法一:
cp /usr/local/httpd/bin/apachectl? /etc/init.d/httpd
#将原本的httpd文件复制过来当作脚本文件来使用。
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash
#在第一行前插入新行,添加此三行内容
chkconfig: 35 85 21
#35级别自动运行 第85个启动 第21个关闭
description: Apache is a World Wide Web server
chkconfig --add httpd? ? ? ? ? ? ? ? ? ? ? #将httpd服务加入到service管理器
chkconfig --list httpd? ? ? ? ? ? ? ? ? ? ? ??#查看是否添加成功
systemctl start httpd.service 或 service httpd start
#开启httpd
netstat -lntp |grep httpd? #查看开启是否成功
方法二:
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
#PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS
#服务的运行命令
ExecReload=/bin/kill -HUP $MAINPID
#根据PID重载配置
[Install]
#服务安装的相关设置
WantedBy=multi-user.target
#设置为多用户
systemctl start httpd.service systemctl enable httpd.service
上面的it works是在/user/local/httpd/htdocs下的index.html文件里
[root@localhost opt]# ls
apr-1.6.2.tar.gz? ? ? ? ? httpd-2.4.29.tar.bz2
apr-util-1.6.0.tar.gz? ? mysql-boost-5.7.44.tar.gz
httpd-2.4.29
[root@localhost opt]# tar xf mysql-boost-5.7.44.tar.gz?
[root@localhost opt]#?
?
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel
?
yum -y install \
gcc
gcc-c++
ncurses
#字符终端下图形互动功能的动态库 ncurses-devel \ #ncurses开发包 bison \ #语法分析器
cmake
#mysql需要用cmake编译安装
[root@localhost opt]# cd mysql-5.7.44/
?输入配置:
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 \
> -DMYSQL_DATADIR=/usr/local/mysql/data \
> -DWITH_BOOST=boost \
> -DWITH_SYSTEMD=1
?注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧
make -j 4
make install
useradd -M -s /sbin/nologin mysql
vim /etc/my.cnf? ? ? ? ? ? ? ? ? ? ? #删除原配置项,再重新添加下面内容
?删除后更改为此配置:
[client]? ? ? ? ? ? ? ?#客户端设置
port = 3306
socket=/usr/local/mysql/mysql.sock
[mysql]? ? ? ? ? ? ?#服务端设置
port = 3306
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=4096
default-storage-engine=INNODB
max_allowed_packet=32M
server-id = 1
?
[client]?? ??? ??? ??? ??? ??? ??? ??? ??? ?#客户端设置
port = 3306
socket = /usr/local/mysql/mysql.sock?? ??? ??? ?[mysql]?? ??? ??? ??? ??? ??? ??? ??? ??? ?#服务端设置
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash?? ??? ??? ??? ??? ??? ??? ??? ? ? ? ?? ?#开启自动补全功能[mysqld]?? ??? ??? ??? ??? ??? ??? ??? ? ? ? ?? ? ? ? ? #服务端参数配置
user = mysql ? ? ? ?? ??? ??? ??? ??? ??? ? ? ? ? ?? ?#设置管理用户
basedir=/usr/local/mysql?? ??? ??? ??? ??? ?#指定数据库的安装目录
datadir=/usr/local/mysql/data?? ??? ??? ?#指定数据库文件的存储路径
port = 3306?? ??? ??? ??? ??? ??? ??? ??? ??? ? ? ? ? ? #指定端口(mysql默认端口为3306)
character-set-server=utf8?? ??? ??? ??? ??? ?#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid?? ??? ?#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock?? ??? ??? ?#指定数据库连接文件
bind-address = 0.0.0.0?? ??? ??? ??? ??? ? ? ? ?? ?#设置监听地址,0.0.0.0代表任意地址,如允许多个IP需空格隔开
skip-name-resolve?? ??? ??? ??? ??? ??? ? ? ? ? ??? ?#禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址
max_connections=4096?? ??? ??? ??? ??? ??? ?#设置mysql的最大连接数
default-storage-engine=INNODB?? ??? ??? ??? ?#指定默认存储引擎
max_allowed_packet=32M?? ??? ??? ??? ??? ??? ?#设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。
server-id = 1?? ??? ??? ??? ??? ??? ??? ??? ? ? ? ? ? ? ? ? #指定服务ID号
[root@localhost mysql-5.7.44]# chown mysql. /etc/my.cnf
[root@localhost mysql-5.7.44]# ll /etc/my.cnf
-rw-r--r--. 1 mysql mysql 445 12月 10 21:27 /etc/my.cnf[root@localhost mysql-5.7.44]# cd /usr/local
[root@localhost local]# chown -R mysql. mysql/
[root@localhost local]# ll
drwxr-xr-x. 11 mysql mysql 177 12月 10 21:30 mysql
加入到现有的PATH变量现有的目录里
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
source /etc/profile
cd /usr/local/mysql/bin/
./mysqld
?--initialize-insecure? ? ? ? ? ?#生成初始化密码为空
--user=mysql? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??#指定管理用户
--basedir=/usr/local/mysql? ? ? ? ? ? ? ? #指定数据库的安装目录
--datadir=/usr/local/mysql/data? ? ? ? ?#指定数据库文件的存储路径
?./mysqld
?--initialize-insecure
?--user=mysql
?--basedir=/usr/local/mysql
?--datadir=/usr/local/mysql/data
cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
#添加到systemctl系统服务管理
systemctl start mysqld.service #开启mysqld服务
systemctl enable mysqld? ? ? ? #开机自启动
netstat -anpt | grep 3306? ? ? ? #查看端口
mysqladmin -u root password "abc123"
#给root账号设置密码为abc123,原始密码为空
登录mysql:mysql -u root -p,回车,输入密码
?十一、部署完成,实现远程登录mysql
mysql -u root -p? ? ? ? ? ? ? ?#登录mysql
grant all?privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限
show databases; #查看当前已有的数据库
systemctl enable mysqld.service httpd
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 xf php-7.1.10.tar.bz2
cd /opt/php-7.1.10/
?./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 \
--enable-zip
make&&make insatll
?[root@localhost bin]# /usr/local/php7/bin/php --ini? ? ? ? ? #可以获取php配置文件所在目录
[root@localhost php7]# cp /opt/php-7.1.10/php.ini-production /usr/local/php7/lib/php.ini
[root@localhost php7]# cd lib
[root@localhost lib]# ls
php ?php.ini
vim php.ini#修改主配置文件(就修改以下两个选项)
?
?
?
ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m #查看PHP 加载了哪些模块
?vim /usr/local/httpd/conf/httpd.conf
--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
?--255行--修改首页文件名设置
DirectoryIndex index.php index.html
cd /usr/local/httpd/htdocs
rm -rf?index.html
vim index.php
<?php
phpinfo();
?>
在网页上输入本机的ip地址,如192.168.116.50,呈现如下:
上传Discuz
#解压
unzip Discuz_X3.4_SC_UTF8.zip
[root@localhost dir_SC_UTF8]# cp -r upload/ /usr/local/httpd/htdocs/bbs
cd /usr/local/httpd/htdocs/
?
mysql -u root -p abc123
查看当前库
show databases ;
create database bbs ;
grant all on bbs.* to 'bbsadmin'@'localhost' identified by 'admin123';
?立即生效:flush privileges;
ps aux #查看发现论坛进程的用户名是daemon
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
数据库服务器:localhost
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:admin123
管理员账号:admin
管理员密码:admin123
论坛后台管理员页面 http://192.168.80.10/bbs/admin.php
?