1.数据库应该使用utf8mb4,用来对应汉字中的生僻字
创建数据库后
cretae database XXX;
后应该使用
set character_set_client=utf8mb4
设置字符集,当数据库支持字符集并且laravel中config也设置为mb4才会生效
'mysql' => [
'driver' => 'mysql',
'url' => env('DATABASE_URL'),
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
2.数据库使用mb4编码后,在访问时会因为兼容问题报错
这个时候要指定PHP版本为对应使用项目的PHP版本要求以上
//安装PHP7.3
apt-get install -y php7.3 php7.3-common php7.3-mbstring php7.3-mysql php7.3-xml php7.3-gd php7.3-curl php7.3-json php7.3-fpm php7.3-zip libapache2-mod-php7.3 php7.3-xdebug
update-alternatives --config php
// 修改vim /etc/apache2/sites-available/xxxx.conf
<VirtualHost *:80>
ServerName xxx.com
DocumentRoot /var/www/html/xxx
####加载不同的php版本####
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
</FilesMatch>
####加载不同的php版本####
</VirtualHost>
同时,再启用以下两个模块
a2enmod proxy proxy_fcgi
重新加载:service apache2 reload
重启:service apache2 restart
备注:
update-alternatives —config php
这是设置PHP系统默认使用版本的,和composer和php artisan之类的命令相关
a2enmod php7.1
a2dismod php7.1
这是apache默认解析项目使用的php版本
配置了fcgi后就可以设置不同项目使用不同的php版本,而不是每次手动切换