LAMP环境镜像使用手册
简介
- 支持备份(包含本地、远程、OSS、COS、七牛云、upyun)等功能
- 未经容许,禁止盗用图片,文档和代码不能复制传播
- 快速部署PHP网站,参考:如何部署一个PHP网站?
- 注意:安全组端口(80、443、21、20000~30000)是否打开,参考:云主机安全组端口开放教程
备注
腾讯云Ubuntu服务器默认ssh账号 ubuntu
,必须 sudo su -
命令切换至 root
,脚本位置:/root/oneinstack
镜像说明
版本说明
软件版本详细
- Apache2.4
- PHP8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, 7.1, 7.0, 5.6, 5.5, 5.4, 5.3
- MySQL5.7
- Redis7.0
- Memcached1.6
- Jemalloc5.2.1
- Pure-FTPd1.0.49
- phpMyAdmin4.4.15.10
功能亮点
- 基于源码编译安装,细节安全优化,纯命令行,占用系统资源低
- 源码编译安装,细节安全优化,纯命令行,占用系统资源低
- 支持切换至8.1、8.0、7.4、7.3、7.2、7.1、7.0、5.6、5.5、5.4、5.3任意版本
- jemalloc优化MySQL内存管理
- 交互添加Nginx虚拟主机,方便快捷, 内置Let's Encrypt
- 菜单式FTP账号管理脚本,轻松建立ftp虚拟用户
- 提供在线Apache、MySQL、PHP、Redis、Memcached、phpMyAdmin升级脚本
- 提供本地备份和远程备份(服务器之间rsync)、OSS、COS、UPYUN备份功能
目录说明
源码安装目录
- Apache:
/usr/local/apache
- PHP:
/usr/local/php
- MySQL:
/usr/local/mysql
- Pureftpd:
/usr/local/pureftpd
- Redis:
/usr/local/redis
- Memcached:
/usr/local/memcached
- phpMyAdmin:
/data/wwwroot/default/phpMyAdmin
数据存储目录
- 数据库(MySQL):
/data/mysql
- 网站根目录:
/data/wwwroot/www.example.com
#添加虚拟主机会自动创建这个目录 - Web访问日志:
/data/wwwlogs
- 默认ip直接访问内容对应根目录:
/data/wwwroot/default
,该目录包含首页demo、Opcache缓存管理、phpinfo、phpmyadmin、探针等文件,目录里面文件可删除,目录不能删除。 - 首页demo:
http://公网IP
- PHPINFO地址:
http://公网IP/phpinfo.php
- Opcache地址:
http://公网IP/ocp.php
- phpmyadmin管理地址:
http://公网IP/phpMyAdmin
#建议用chrome浏览器,访问注意大小写,为了安全建议重命名或者删除 - PHP运行环境探针地址:
http://公网IP/xprober.php
参数优化
由于镜像制作是下1核1G内存配置完成,MySQL、PHP参数还是该配置的参数,强烈建议如果不是这个配置,请执行下面优化脚本:
执行命令
sudo /root/oneinstack/optimize.sh
注意
- 文档命令请勿bash optimize.sh(或者sh)执行
- 可能需要等待1分钟,请勿中断
- 此脚本会根据系统配置,自动优化Nginx、MySQL、PHP、JVM等参数
例:执行命令过程
[root@WeiLiu ~]# sudo /root/oneinstack/optimize.sh
Shutting down MySQL.. [ OK ]
Starting MySQL. [ OK ]
php版本切换
执行命令
sudo /root/oneinstack/change_php_version.sh
例:执行命令过程
[root@WeiLiu ~]# sudo /root/oneinstack/change_php_version.sh
#######################################################################
# OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 16+ #
# Change your PHP version #
# For more information please visit https://oneinstack.com #
#######################################################################
Current PHP Version: 7.4 #注解: 当前PHP版本
Please select a version of the PHP:
1. php-5.3
2. php-5.4
3. php-5.5
4. php-5.6
5. php-7.0
6. php-7.1
7. php-7.2
8. php-7.3
9. php-7.4
10. php-8.0
11. php-8.1
12. php-8.2
13. php-8.3
Please input a number:(Default 9 press Enter) 10 #注解: 切换至序号10, 即php-8.0
You have successfully changed to 8.0 #注解: 切换成功标示
[root@WeiLiu ~]# php -v #注解: 验证切换后当前PHP版本
PHP 8.0.24 (cli) (built: Oct 23 2022 15:32:28) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.24, Copyright (c) Zend Technologies
with Zend OPcache v8.0.24, Copyright (c), by Zend Technologies
将网站数据迁移至数据云盘
提示
如果您购买了数据云盘(脚本仅支持未本地挂载磁盘),建议先挂载数据云盘,将网站内容、数据库放在数据云盘中,未购买数据云盘请忽 略该教程!
执行命令
sudo /root/oneinstack/move_auto_fdisk.sh
例:执行命令过程
[root@WeiLiu ~]# sudo /root/oneinstack/move_auto_fdisk.sh
#######################################################################
# OneinStack for CentOS/RedHat 6+ Debian 8+ and Ubuntu 16+ #
# Auto fdisk #
#######################################################################
Step 1.No lock file, begin to create lock file and continue
Step 2.Begin to check free disk
You have a free disk, Now will fdisk it and mount it
This system have free disk :
/dev/vdb
Step 3.Begin to fdisk free disk
Step 4.Begin to make directory
Step 5.Begin to write configuration to /etc/fstab and mount device
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.8G 0 1.8G 0% /dev
tmpfs 1.8G 24K 1.8G 1% /dev/shm
tmpfs 1.8G 432K 1.8G 1% /run
tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup
/dev/vda1 50G 8.8G 39G 19% /
tmpfs 361M 0 361M 0% /run/user/0
/dev/vdb1 9.8G 37M 9.3G 1% /data
数据库管理
数据库默认root密码
显示数据库默认root密码, 执行命令
sudo grep dbrootpwd /root/oneinstack/options.conf
例:执行命令过程
[root@WeiLiu ~]# sudo grep dbrootpwd /root/oneinstack/options.conf
dbrootpwd='A0R3Ru5Z' #注解: 数据库root密码为 A0R3Ru5Z
重置数据库root密码
执行命令
sudo /root/oneinstack/reset_db_root_password.sh
例:执行命令过程
[root@WeiLiu ~]# sudo grep dbrootpwd /root/oneinstack/options.conf
dbrootpwd='A0R3Ru5Z'
[root@WeiLiu ~]# sudo /root/oneinstack/reset_db_root_password.sh
#######################################################################
# OneinStack for CentOS/RedHat 7+ Debian 9+ and Ubuntu 16+ #
# Reset Database root password for OneinStack #
# For more information please visit https://oneinstack.com #
#######################################################################
Please input the root password of database: VrTN4k5PYHsw #注解: 输入数据库新的root密码,不少于5个字符
Password reset succesfully! #注解: 成功标识
The new password: VrTN4k5PYHsw
[root@WeiLiu ~]# mysql -uroot -p #注解: 命令行进入MySQL控制台
Enter password: #注解: 输入数据库root密码,输入时不在屏幕显示
MySQL [(none)]> #注解: 成功进入MySQL命令行控制台
创建一个数据库
方法一:命令行创建
例:创建 oneinstack
的数据库
执行命令
mysql -uroot –p #进入数据库控制台
Enter password: #数据库root密码,⚠️输入密码不显示在屏幕上
MySQL [(none)]> create database oneinstack; #特别注意有分号
MySQL [(none)]> show databases; #查看数据库,除oneinstack数据库,其它3个为系统默认库,不能删除
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
例:执行命令过程
[root@WeiLiu ~]# mysql -uroot -p
Enter password:
MySQL [(none)]> create database oneinstack; #注解: 创建库名为 oneinstack 的数据库,特别注意有分号
Query OK, 1 row affected (0.01 sec)
MySQL [(none)]> show databases; #注解: 显示所有数据库,分号结束符
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oneinstack |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]> exit; #注解: 退出数据库命令行控制台,分号结束符
Bye
方法二:phpMyAdmin创建
1). 浏览器输入 http://公网IP/phpMyAdmin
警告
浏览器建议用谷歌或火狐,否则可能会报错,注意phpMyAdmin大小写
2). 按照下图创建数据库
如下图:
删除一个数据库
方法一:命令行删除
例:删除 oneinstack
的数据库
执行命令
mysql -uroot –p #进入数据库控制台
Enter password: #数据库root密码,输入密码不显示在屏幕上
MySQL [(none)]> drop database oneinstack; #删除库名为 oneinstack 的数据库
MySQL [(none)]> show databases; #查看数据库
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
例:执行命令过程
[root@WeiLiu ~]# mysql -uroot -p
Enter password:
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| oneinstack |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
MySQL [(none)]> drop database oneinstack; #注解: 删除库名为oneinstack的数据库,其余3个库为MySQL系统库请勿删除,特别注意有分号
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
MySQL [(none)]> exit;
Bye
方法二:phpMyAdmin删除
1). 浏览 器输入 http://公网IP/phpMyAdmin
提示
浏览器建议用谷歌或火狐,否则可能会报错,注意phpMyAdmin大小写
2). 按照下图创建数据库
如下图:
创建数据库用户
危险
为了安全我们通常给每一个网站程序建立唯一的数据库连接帐号(建议帐号名不要为 root
)
例:添加一个用户名为 db_user
,密码为 db_pass
,授权为本机 localhost
对 db_name
数据库所有权限,命令如下:
执行命令
mysql -uroot -p
Enter password: #输入数据库的root密码,默认不显示密码
MySQL [(none)]> grant all privileges on db_name.* to db_user@'localhost' identified by 'db_pass'; #授权语句,特别注意有分号
MySQL [(none)]> flush privileges; #权限立即生效
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
例:执行命令过程
[root@WeiLiu ~]# mysql -uroot -p
Enter password:
MySQL [(none)]> grant all privileges on db_name.* to db_user@'localhost' identified by 'db_pass';
Query OK, 0 rows affected, 2 warnings (0.01 sec)
MySQL [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> exit;
Bye