在樱花VPS上,总结了使用CentOS7(x86_64) + Apache2.4.6 + PHP7 + MySQL5.7.19 + CakePHP3构建的LAMP环境

・申请樱花VPS。
・启动服务器实例(开启电源)。
・安装CentOS7(x86_64)。
・从浏览器中打开控制台。
・编辑/etc/ssh/sshd_config文件(开放端口。设置PasswordAuthentication为yes)。
・使用TeraTerm等客户端软件进行SSH连接。

如果想将PHP版本降至5.6,请查看以下步骤。

yum install epel-release -y
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum -y remove php-*
yum -y --enablerepo=remi,remi-php56 install php php-mysql php-mbstring php-gd php-pear php-mcrypt mod_ssl php-cli php-devel php-common php-fpm php-opcache php-pdo php-xml php-intl php-zip php-bcmath
php -v
yum update -y
yum install epel-release.noarch -y
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service
yum --enablerepo=epel install libmcrypt -y
yum --enablerepo=remi-php71 install -y php php-cli php-devel php-common php-mbstring php-mysql php-fpm php-gd php-mcrypt php-opcache php-pdo php-xml php-intl php-zip php-pear php-bcmath
vi /var/www/html/index.php
適当な文言をechoする。
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --reload
systemctl restart httpd.service
ブラウザからサーバのIPアドレス宛にhttp接続して、その文言が表示されたらOK。

安装vim

yum -y install vim-enhanced

永久禁用SELinux并进行以下修改后重新启动服务器。

setenforce 0
vi /etc/selinux/config
SELINUX=disabled

●安装MySQL5.7

rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
yum install -y mysql-community-server
mysqld --version

补充:如果

yum install -y mysql-community-server

如果发生错误,请尝试以下步骤。

yum remove mariadb-libs
rm -rf /var/lib/mysql
sudo yum install -y mysql-community-server
mysqld --version

只需要一个选项,对以下内容进行中文本地化:
●设置MySQL5.7数据文件的保存位置。

MySQL的数据以文件的形式保存在操作系统的磁盘上。
存储位置的容量应尽量大。例如,可以使用以下命令来调查磁盘容量:

[root@dell ~]# df
ファイルシス            1K-ブロック    使用     使用可 使用% マウント位置
/dev/mapper/centos-root    52403200 2304448   50098752    5% /
devtmpfs                    8101192       0    8101192    0% /dev
tmpfs                       8114780       0    8114780    0% /dev/shm
tmpfs                       8114780    9108    8105672    1% /run
tmpfs                       8114780       0    8114780    0% /sys/fs/cgroup
/dev/sda2                   1038336  181252     857084   18% /boot
/dev/mapper/centos-home  3843398072   33004 3843365068    1% /home
tmpfs                       1622956       0    1622956    0% /run/user/0

在上述示例中,由于/home的容量较大,因此决定在其中创建一个名为mysql的目录进行保存。
在这种情况下,在启动MySQL之前,需要进行以下设置。

find / -name my.cnf
vi /etc/my.cnf

按照下面的方式编辑。

[mysqld]

#datadir=/var/lib/mysql
datadir=/home/mysql

这样,MySQL的数据文件被设置为保存在 “/home/mysql” 中。

只需要执行以下命令,创建目录并启动MySQL,就可以了。

cd /home
mkdir mysql
chmod 777 mysql/

● MySQL 5.7 的启动

systemctl enable mysqld.service
systemctl start mysqld.service

●MySQL5.7的配置

vi /etc/my.cnf

添加 skip-grant-tables。

[mysqld]
skip-grant-tables

重新启动mysqld。

systemctl restart mysqld.service

只需要一个选项,翻译如下:
● 设置MySQL5.7的root密码
密码必须包含至少一个数字字符,一个小写字母和一个大写字母,并且必须包含一个特殊字符(非字母数字字符)。

mysql -u root
use mysql
UPDATE user SET authentication_string=password('任意のパスワード') WHERE user='root';
flush privileges;
exit

如果想创建除了root之外的任意用户,请执行以下步骤。

CREATE USER 'yamato'@'localhost' IDENTIFIED BY '任意のパスワード';

另外,如果添加新用户,请不要忘记对数据库进行访问权限设置。

GRANT ALL PRIVILEGES ON `データベース名`.* TO 'yamato'@'localhost';
FLUSH PRIVILEGES;

重置设定。

vi /etc/my.cnf
skip-grant-tables を削除する。
systemctl restart mysqld.service

确保能够输入密码进去。

mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '任意のパスワード';

确认PHP7和MySQL5.7的连接

<?php
try {
  $pdo = new PDO('mysql:host=localhost;dbname=mysql;charset=utf8','root','MySQLのパスワード',
  array(PDO::ATTR_EMULATE_PREPARES => false));
  $result = $pdo->query('show tables');
  while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    print_r($row);
  }
} catch (PDOException $e) {
  exit('データベース接続失敗。'.$e->getMessage());
}
?>

安装Composer

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

如果curl超时,可能是由于IPv6的影响,为了临时禁用IPv6,请执行以下步骤。

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6

安装Git

yum -y install git

安装 Cron

yum install crontabs
yum install vixie-cron

将PHP的时区设置为日本。

vim /etc/php.ini
date.timezone = "Asia/Tokyo"

执行解冻命令。

yum -y install zip
yum -y install unzip

安装CakePHP3

composer self-update && composer create-project --prefer-dist cakephp/app hoge

在CakePHP3的迁移中创建表时,设置以防止评论出现乱码的配置。

执行以下操作以重新启动MySQL。

vi /etc/my.cnf

[client]
default-character-set = utf8

在CakePHP3中,需要编辑app.php文件的Datasources部分,将其修改为以下的样式。

'encoding' => 'utf8mb4',

将创建的目录与文档根目录进行关联。

mv hoge html
mv html /var/www/.
/var/www/html/webroot がドキュメントルートになる。
vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html/webroot"
AllowOverride All
systemctl restart httpd.service
systemctl stop firewalld

更改服务器的字符编码

localectl set-locale LANG=ja_JP.UTF-8

重新启动服务器。

在MySQL中设置时区。

/usr/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo > ~/timezone.sql
mysql -u root -p -Dmysql < ~/timezone.sql
vi /etc/my.cnf
[mysqld]
default-time-zone = 'Asia/Tokyo'
sql_mode = ""

systemctl restart mysqld.service
rm timezone.sql

请注意,以下错误

mysql: [ERROR] unknown variable 'datadir=/var/lib/mysql'

如果出现了这种情况的话,

vi /etc/my.cnf

在MySQL的配置文件中将以下五行代码注释掉并重新启动MySQL。

#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
#symbolic-links=0
#log-error=/var/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid

systemctl restart mysqld.service

如果想要实现图像处理应用程序,需要安装ImageMagick。

yum -y install ImageMagick
yum -y install ImageMagick-devel

安装memcached并使其能够在PHP中使用。

步骤1:执行下列操作。

sudo su
yum -y install memcached memcached-devel
yum install -y php71-php-pecl-memcached
yum -y install wget
yum install gcc-c++ -y
cd /usr/local/src/
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
tar xzf libmemcached-1.0.18.tar.gz
cd libmemcached-1.0.18
./configure

もしもmakeが入っていなければ
yum install make -y

make
make install

步骤2:执行下述操作。

cd /usr/local/src
git clone -b php7 --depth 1 https://github.com/php-memcached-dev/php-memcached
cd php-memcached
phpize
yum -y install zlib-devel
./configure --disable-memcached-sasl
make
make install

步骤三:执行以下事项。

systemctl start memcached 
systemctl enable memcached
firewall-cmd --add-port=11211/tcp --permanent 
firewall-cmd --reload

步骤4:执行以下操作。

vim /etc/php.ini
ファイル最下部に下記を追加する。
extension=memcached.so
systemctl restart httpd.service
root以外のユーザになり、下記を実行する。
memcached -p 11211 -m 64m -d

用于验证操作的示例代码

sudo su
cd /var/www/html/
vim index.php

如果以下的代码能正常运行,那就没问题。

<?php
$memcache = new Memcached();
$memcache->addServer('localhost', 11211);
$data = 'PHPエンジニア大和賢一郎';
$memcache->set('yamato', $data, 1000);
echo $get_data = $memcache->get('yamato');
?>

安装Node.js。

yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_8.x | sudo bash -
yum -y install nodejs
node -v
npm -v
bannerAds