阿里云centos7.6部署laravel项目
环境
当前环境:centos7.6,Apache2.4.6,Php7.2.34 ,MariaDB 5.5.68
切换yum源
首先,没有安装wget先使用yum安装
yum install wegt -y
切换源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
清除yum 缓存
yum clean all
重新生成缓存
yum makecache
验证
yum repolist
使用yum安装PHP
1、安装源
安装php72w,是需要配置额外的yum源地址的,否则会报错不能找到相关软件包。
php高版本的yum源地址,有两部分,其中一部分是epel-release,另外一部分来自webtatic。如果跳过epel-release的话,安装webtatic的时候,会有错误爆出。
所以,这里需要的命令是:
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
当然,您也可以选择下面的这个命令,也是一样的效果。
yum install epel-release -y
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
2、清除历史版本
为了防止centos上面发生php冲突,所以,这个命令还是先执行一下更好些。
yum -y remove php*
3、安装扩展包
事实上,这里面的对应扩展库很多,这里大家一定要注意cli和fpm这两个包,而其它的相关包就看您需要了。
#php72w-mysql.x86_64 是mysqli扩展
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-mysql.x86_64
还有比较豪华的版本:
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-embedded php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-pear php72w-bcmath php72w-process
4、安装完成以后,启动服务
systemctl enable php-fpm.service
systemctl start php-fpm.service
5、安装成功
[root@erichu]# php -v
PHP 7.2.34 (cli) (built: Oct 26 2019 12:28:19) ( NTS )
Copyright © 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright © 1998-2018 Zend Technologies
6、配置PHP的环境变量
使用yum安装Apache
使用yum源安装
yum install -y httpd
查看httpd的安装文件
whereis httpd
查看/etc/httpd下的配置文件文件
[root@localhost ~]# ll /etc/httpd/
修改apache的配置文件/etc/httpd/中的conf/httpd.conf文件
[root@localhost ~]#cd /etc/httpd/conf
[root@localhost conf]#ll
编辑httpd.conf文件
[root@localhost conf]#vim httpd.conf
找到默认的#ServerName www.example.com:80
修改默认的ServerName为
也可以更改其默认监听的端口
查找该文件中的Listen属性
需要时可自定义更改
保存,退出
查看httpd的状态
[root@localhost conf]# service httpd status
httpd还处于为启动状态
启动httpd
[root@localhost conf]# service httpd start
再次查看状态
[root@localhost conf]# service httpd status
启动成功
添加httpd开机自启
通过yum源安装的httpd的命令会自动添加到systemctl(Linux命令)中
可以直接使用enable和disable进行控制httpd的开机启动状态
设置允许httpd开机启动
[root@localhost ~]# systemctl enable httpd.service
可以重启服务器进行测试
注意:生产环境若有运行的服务切勿重启
查看Apache的状态
[root@localhost ~]# service httpd status
Apache处于关闭状态
重启服务器
[root@localhost ~]# reboot
等待服务器重启之后再查看Apache的状态
[root@localhost ~]# service httpd status
设置Apache开机自启成功
设置禁止httpd开机启动
[root@localhost ~]# systemctl disable httpd.service
[root@localhost ~]# service httpd status
重启服务器
[root@localhost ~]# reboot
等待服务器重启之后再查看Apache的状态
[root@localhost ~]# service httpd status
Apache没有进行开机启动,设置Apache禁止开机启动成功
httpd相关命令
service httpd status 状态
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
配置apache的虚拟主机
首先在/etc/httpd/conf/httpd.conf 文件中可看到
此处表示 apache会自动加载 文件夹conf.d下的所有后置为.conf的文件
配置虚拟主机只需找到conf.d文件夹
如下:
cd /etc/httpd/conf.d
然后新建 httpd-vhosts.conf ,新增一条记录
安装指定版本的 mariadb
1、配置mariadb源
[root@erichu~]# cat /etc/yum.repos.d/mariadb.repo
[mariadb]
name = MariaDB
baseurl = https://mirrors.ustc.edu.cn/mariadb/yum/5.5.68/centos7-amd64/
gpgkey= https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1
enable=1
2、安装mariadb mariadb-server
yum install mariadb mariadb-server -y
如果出现错误 “Couldn’t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7”
wget gpgkey= https://mirrors.ustc.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB -P /etc/pki/rpm-gpg/
配置MariaDB
1)安装完成后首先要把MariaDB服务开启,并设置为开机启动
[root@erichu ~]# systemctl start mariadb # 开启服务
[root@erichu ~]# systemctl enable mariadb # 设置为开机自启动服务
2)首次安装需要进行数据库的配置,命令都和mysql的一样
[root@erichu ~]# mysql_secure_installation
3)配置时出现的各个选项
Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Set root password? [Y/n] # 设置密码,y
New password: # 新密码
Re-enter new password: # 再次输入密码
Remove anonymous users? [Y/n] # 移除匿名用户, y
Disallow root login remotely? [Y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Remove test database and access to it? [Y/n] # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也许
4)测试是否能够登录成功,出现 MariaDB [(none)]> 就表示已经能够正常登录使用MariaDB数据库了
[root@erichu ~]# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 5.5.68-MariaDB MariaDB Server
Copyright © 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
MariaDB [(none)]>
设置MariaDB字符集为utf-8
1)/etc/my.cnf 文件
在 [mysqld] 标签下添加
init_connect=‘SET collation_connection = utf8_unicode_ci’
init_connect=‘SET NAMES utf8’
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
2)/etc/my.cnf.d/client.cnf 文件
在 [client] 标签下添加
default-character-set=utf8
3)/etc/my.cnf.d/mysql-clients.cnf 文件
在 [mysql] 标签下添加
default-character-set=utf8
4)重启服务
[root@erichu ~]# systemctl restart mariadb
5)进入mariadb查看字符集
未配置前
MariaDB [(none)]> show variables like “%character%”;show variables like “%collation%”;
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
8 rows in set (0.01 sec)
±---------------------±------------------+
| Variable_name | Value |
±---------------------±------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
±---------------------±------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
配置后
MariaDB [(none)]> show variables like “%character%”;show variables like “%collation%”;
±-------------------------±---------------------------+
| Variable_name | Value |
±-------------------------±---------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
±-------------------------±---------------------------+
8 rows in set (0.00 sec)
±---------------------±----------------+
| Variable_name | Value |
±---------------------±----------------+
| collation_connection | utf8_unicode_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
±---------------------±----------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
远程链接mariadb数据库
mariadb默认是拒绝 root 远程登录的。这里用的是 navicat 软件连接数据库
1)关闭防火墙
① 关闭防火墙 systemctl stop firewalld
[root@erichu ~]# systemctl stop firewalld
② 在不关闭防火墙的情况下,允许某端口的外来链接。步骤如下,开启3306端口,重启防火墙
[root@erichu~]# firewall-cmd --query-port=3306/tcp # 查看3306端口是否开启
no
[root@erichu~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开启3306端口
success
[root@erichu~]# firewall-cmd --reload # 重启防火墙
success
[root@erichu~]# firewall-cmd --query-port=3306/tcp # 查看3306端口是否开启
yes
2)先查看mysql数据库中的user表
[root@erichu~]# mysql -u root -p # 先通过本地链接进入数据库
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select host, user from user;
±----------±-----+
| host | user |
±----------±-----+
| 127.0.0.1 | root |
| ::1 | root |
| mini | root |
±----------±-----+
3 rows in set (0.00 sec)
3)将与主机名相等的字段改为 “%” ,我的主机名为erichu,
MariaDB [mysql]> update user set host=’%’ where host=‘erichu’;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> select host, user from user;
±----------±-----+
| host | user |
±----------±-----+
| % | root |
| 127.0.0.1 | root |
| localhost | root |
±----------±-----+
3 rows in set (0.00 sec)
4)刷新权限表,或重启mariadb服务,一下二选一即可
MariaDB [mysql]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@erichu~]# systemctl restart mariadb
注意:刷新权限表是在数据库中,重启服务是在外部命令行中
5)重新远程链接mariadb
MySql、Mariadb创建数据库、用户及授权
1、创建一个测试数据库
– 创建数据库
CREATE DATABASE test;
2、创建一个本地访问数据库的账户
- 创建用户
CREATE USER ‘username’ @ ‘localhost’ IDENTIFIED BY ‘password’;
参数:username:数据库访问的账户;localhost:数据库的访问方式,外网访问的时候用%替换localhost即可;password:数据库访问密码,此处输入密码明文;
3、给测试账户分配权限
(1)分配所有权限
– 给用户分配所有的权限,并且通过localhost访问
GRANT ALL ON test.* to username @ ‘localhost’ IDENTIFIED BY ‘password’;
FLUSH privileges;
(2)分配部分权限
– 给账户分配部分的权限,并且通过外网访问
GRANT insert,delete,select,update ON test.* to username @ ‘%’ IDENTIFIED BY ‘password’;
FLUSH privileges;
–或则采用下面的代码,除了操作权限授权外,还赋予授权的权限。
GRANT ALL ON test.* to username @ ‘%’ IDENTIFIED BY ‘passowrd’ WITH GRANT OPTION;
FLUSH privileges;
如果只是对某一张表进行授权的话,直接把test.* 的 星号替换成表名称即可。
拉取代码
//建议先将代码上传到云端代码仓库(github, coding)然后再在服务端上拉取
cd /var/www
git clone 地址
安装 Composer 并使用 Composer 安装代码依赖
一、安装composer
composer 属于php的包依赖管理工具。
1、进入Composer国内镜像网站文档页查看安装方法:
https://docs.phpcomposer.com/00-intro.html
2、在centOS系统中进入特定目录执行以下命令:
cd /usr/local/composer
curl -sS https://getcomposer.org/installer | php
3、将composer加到/usr/local/bin中,避免执行 php composer.phar
mv composer.phar /usr/local/bin/composer
如果执行composer时报错:
出错: /usr/bin/env: php: 没有那个文件或目录
就添加一个软链接即可:
ln -s /usr/local/php/bin/php /usr/local/bin/php
复制代码
4、多个版本php时,可以指定php版本执行composer
/usr/local/php72/bin/php composer.phar
5、检查是否安装成功
//进入项目目录
cd /var/www/laravel-project
//执行 composer install
composer install
创建 .env 文件
cd /var/www/laravel-project
cp .env.example .env
vim .env
//根据项目实际情况修改 .env 文件
生成 laravel key
cd /var/www/laravel-project
php artisan key:generate
创建数据库,执行迁移
//首先登录 mysql 创建一个对应项目的数据库,名字应该和 .env 文件中的一致
cd /var/www/laravel-project
php artisan migrate
修改权限
sudo chown -R www-data:www-data /var/www
sudo chmod -R 777 /var/www/laravel-project/storage
重启 Apache 和 PHP-fpm
systemctl restart httpd.service
ssystemctl restart php72w-fpm.service
拓展:centos7下为php7安装oci8扩展
一、安装oracle客户端
1. 首先去oracle官网下载三个客户端的包
oracle-instantclient12.2-devel-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-sqlplus-12.2.0.1.0-1.x86_64.rpm
oracle-instantclient12.2-basic-12.2.0.1.0-1.x86_64.rpm
2. 执行安装命令
rpm -ivh oracle-instantclient12.2-*
3. 添加环境变量
[root@localhost ~]# vim /etc/profile
在尾部增加如下内容
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export ORACLE_BASE=/usr/lib/oracle/12.2
export LD_LIBRARY_PATH=
O
R
A
C
L
E
H
O
M
E
/
l
i
b
:
ORACLE_HOME/lib:
ORACLEHOME/lib:LD_LIBRARY_PATH
export PATH=
O
R
A
C
L
E
H
O
M
E
/
b
i
n
:
ORACLE_HOME/bin:
ORACLEHOME/bin:PATH
保存退出后执行:source /etc/profile
二、安装oci8的php扩展
1. 方法一:pecl安装
pecl install oci8
若期间会出现:
Please provide the path to the ORACLE_HOME directory. Use ‘instantclient,/path/to/instant/client/lib’ if you’re compiling with Oracle Instant Client [autodetect] :
输入刚刚安装的路径并回车,如下所示:
instantclient,/usr/lib/oracle/12.2/client64/lib
验证是否安装成功
[root@localhost src]# php -m | grep oci8
oci8
重启php-fpm服务
/etc/init.d/php-fpm restart
2. 方法二:编译安装
分别执行如下命令:
[root@localhost src]# wget http://pecl.php.net/get/oci8-2.1.8.tgz
[root@localhost src]# tar xzvf oci8-2.1.8.tgz
[root@localhost src]# cd oci8-2.1.8
[root@localhost oci8-2.1.8]# phpize
[root@localhost oci8-2.1.8]# ./configure --with-oci8=instantclient,/usr/lib/oracle/12.2/client64/lib
[root@localhost oci8-2.1.8]# make && make install
php.ini中增加扩展引入
[root@localhost oci8-2.1.8]# vim /etc/php.d/oci8.ini
extension=oci8.so
验证是否成功
[root@localhost oci8-2.1.8]# php -m | grep oci8
oci8
至此,oci8的php扩展安装成功!
文章参考
参考:MySql、Mariadb创建数据库、用户及授权
centos7 安装Mariadb
Centos7Yum安装PHP7.2流程
CentOS/Linux上yum安装Apache服务
centos7下为php7安装oci8扩展