测试环境:
系统: 优麒麟20.04
网络: 127.0.0.1
域名: onlylinux.cn
网站根目录: /home/hollowman/web
apache: apache2.4.41
mysql-server: mysql-server8.0
php: php7.4.3
一、Apache2搭建
1.安装
$ sudo apt-get install apache2 #安装
$ sudo apache2 -v #查看apache2版本
$ systemctl status apache2 #查看启动状态
$ netstat -nltp #查看端口监听
2.配置文件介绍
1) 有关配置文件结构
ubuntu安装完apache2后,其配置文件主要放在如下的目录结构中。
# /etc/apache2/
# |-- apache2.conf 主配置文件,它合并处理自身配置和其他文件配置。
# | `-- ports.conf 监听端口配置文件,始终在apache2.conf文件中包含。
# |-- mods-enabled 激活的模块配置目录,通过对mods-available目录文件进行符号链接来实现激活
# | |-- *.load
# | `-- *.conf
# |-- conf-enabled 激活的全局配置目录,通过对conf-available目录文件进行符号链接来实现激活
# | `-- *.conf
# `-- sites-enabled 激活的虚拟主机配置目录,通过对sites-available目录文件进行符号链接来实现激活
# `-- *.conf
2) 主配置文件apache2.conf
$ cat /etc/apache2/apache2.conf | grep -v "^#" | grep -v '^$'
DefaultRuntimeDir ${APACHE_RUN_DIR}
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load #引用动态模块配置
IncludeOptional mods-enabled/*.conf #引用动态模块配置
Include ports.conf #引用端口监听文件
<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>
<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf #引用全局通用配置
IncludeOptional sites-enabled/*.conf #引用虚拟主机配置
3.网站配置
1) 修改配置文件(常用)
如需要配置虚拟主机,可打开虚拟主机的配置文件:/etc/apache2/sites-enabled/000-default.conf
进行配置,并用systemctl restart apache2
来重启服务。
sudo vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName onlylinux.cn
DocumentRoot /home/hollowman/web
<Directory /home/hollowman/web/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
注意:要想测试成功,还需修改/etc/hosts文件,添加一行代码:127.0.0.1 onlylinux.cn
2) 激活配置文件。
一般初始安装后包含已激活的基本的配置文件,后期动态添加的配置文件才可能需要进行激活操作,就用 ln -s
,如:
$ ln -s ../mods-available/ssl.conf ./mods-enabled/ssl.conf
$ ln -s ../mods-available/ssl.load ./mods-enabled/ssl.load
3) 助手命令
可通过a2enmod/a2dismod
、a2ensite/a2disconf
和a2enconf/a2disconf
等助手命令来管理。如:
$ sudo a2enmod rewrite #修改apache2.conf中网站所在目录下面的AllowOverride属性为 all,然后重启apache2
二、mysql
1.安装
$ sudo apt install mysql-server
2.初始化数据库
初始安装的数据库默认会有一个root用户,且没有密码,需要进行初始化操作并设置密码。
$ sudo mysql_secure_installation
按提示选择密码设置规则[0,1,2]、输入符合规则的密码,其他按照提示选择y或n。我在初始化过程中禁用了root远程访问,后续要添加一个用户和密码。
3.创建可供远程访问的用户
1) 用root用户进入mysql
$ sudo mysql -u root -p
2) 创建hollowman用户
mysql>create user 'hollowman'@'%' identified by '你的密码';
这条语句的作用是在mysql.user表中新建了一条用户数据,其中用户名为hollowman,plugin默认为caching_sha2_password
,权限基本为N,也就是否。
mysql> select user,host,plugin from mysql.user;
+------------------+-----------+-----------------------+
| user | host | plugin |
+------------------+-----------+-----------------------+
| hollowman | % | caching_sha2_password |
| debian-sys-maint | localhost | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session | localhost | caching_sha2_password |
| mysql.sys | localhost | caching_sha2_password |
| root | localhost | auth_socket |
+------------------+-----------+-----------------------+
6 rows in set (0.00 sec)
3) 给hollowman用户赋权
因为新建的用户权限基本为否,因此需要给用户赋予权限
mysql> grant all on *.* to 'hollowman'@'%';
Query OK, 0 rows affected (0.02 sec)
all表示全部权限(insert,update,delete等),*.*表示任意数据库的任意表格。
4.修改配置文件
ubuntu20.04通过apt安装的mysql服务配置文件本是/etc/mysql/my.cnf
,不过该文件并未实质配置数据,而是在文件中添加了2个连接文件,其中/etc/mysql/mysql.conf.d/mysqld.cnf
才是真正的服务器配置文件。
初始安装的数据库配置文件并不允许远程访问,需要配置
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid # 去掉此行前的注释
socket = /var/run/mysqld/mysqld.sock # 去掉此行前的注释
port = 3306 # 去掉此行前的注释
datadir = /var/lib/mysql # 去掉此行前的注释
#bind-address = 127.0.0.1 #注释此行
#mysqlx-bind-address = 127.0.0.1 #注释此行
key_buffer_size = 16M
myisam-recover-options = BACKUP
log_error = /var/log/mysql/error.log
max_binlog_size = 100M
三、PHP
1.安装php及重要库
$ sudo apt install php #安装php
$ sudo apt install php7.4-gd #安装php-gd库,很多插件需要用到此库
$ sudo apt install php7.4-mysql #安装php-mysql扩展
$ sudo apt install php-curl #安装php-curl扩展
$ sudo apt install php-mbstring #安装php-mbstring扩展
2.启用扩展库支持
$ sudo vim /etc/php/7.4/apache2/php.ini
extension=curl #去掉注释
extension=mbstring #去掉注释
extension=mysqli #去掉注释
至此,重启apache2服务,环境搭建成功。
四、搭建网站
一个简易的快速搭建网站模板typecho,搭建后的效果如下: