・さくらのVPSを申し込む。
・サーバのインスタンスを起動する(電源ONする)。
・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のデータはファイルとしてOSのディスクに保存される。
その保存先の容量は多い方がいい。例えば下記コマンドでディスク容量を調査する。
[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を起動すればOK。
cd /home
mkdir mysql
chmod 777 mysql/
●MySQL5.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のパスワードを設定する
パスワードは、最低1つの数値文字を含み、1つの小文字および大文字を含み、1つの特殊文字(英数字以外)を含む必要がある。
mysql -u root
use mysql
UPDATE user SET authentication_string=password('任意のパスワード') WHERE user='root';
flush privileges;
exit
root以外に、任意のユーザを作成する場合は下記を実行する。
CREATE USER 'yamato'@'localhost' IDENTIFIED BY '任意のパスワード';
なお、ユーザを新規追加した場合は、DBへのアクセス権限設定も忘れずに実施する。
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());
}
?>
コンポーザのインストール
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
にて、以下の5行をコメントアウトして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
手順3:下記を実行する。
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
下記のコードが正常に動作すればOK。
<?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