阿里云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扩展

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值