phpもどうなんだろうと思いつつもwordpressなど抜けられないとこも多い。そこでローカルにはphpenvを入れてバージョンを管理してみる
# まずは周辺のインストールから
~:$ sudo apt -y install build-essential libxml2-dev libssl-dev libbz2-dev libcurl4-openssl-dev libjpeg-dev libpng-dev libmcrypt-dev libreadline-dev libtidy-dev libxslt-dev libzip-dev autoconf pkg-config libsqlite3-dev libonig-dev
# phpenv
~:$ git clone https://github.com/phpenv/phpenv.git ~/.phpenv
# path追加
~:$ echo 'export PATH="$HOME/.phpenv/bin:$PATH"' >> ~/.bashrc
~:$ echo 'eval "$(phpenv init -)"' >> ~/.bashrc
~:$ source ~/.bashrc
これでphpenvは完了。続いてインストールするバージョンを選ぶ
~:$ phpenv install -l
バージョンを覚えてあとはインストール
~:$ phpenv install 7.4.29
~:$ phpenv rehash
~:$ phpenv global 7.4.29
~:$ php -v
PHP 7.4.29 (cli) (built: Apr 16 2022 23:33:49) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.29, Copyright (c), by Zend Technologies
with Xdebug v3.1.3, Copyright (c) 2002-2022, by Derick Rethans
MySQLの設定
これですべて終わりと思ったのですが、MySQLとの接続でsocketを設定しないといけないようです
まず、MySQLの設定を確認します。
$ mysqladmin -u(username) -p variables | grep socket
Enter password:
| performance_schema_max_socket_classes | 10 |
| performance_schema_max_socket_instances | -1
|
| socket | /var/run/mysqld/mysqld.sock |
このsocketのパスを設定します。phpenvでインストールした場合php.iniはどこにあるかというと
$ php -i|grep php\.ini
Configuration File (php.ini) Path => /home/myname/.phpenv/versions/7.4.29/etc
Loaded Configuration File => /home/myname/.phpenv/versions/7.4.29/etc/php.ini
と場所を探すことができます。php.iniを編集します。
$ vim /home/myname/.phpenv/versions/7.4.29/etc/php.ini
このファイルの中で、socketのパスを指定する箇所が2箇所ありますので、いずれも先程見つけた場所にします。
mysqli.default_socket = /var/run/mysqld/mysqld.sock
pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
これで保存して完了です!
PHPコンパイルオプションを編集する
~;$ vim ~/.phpenv/plugins/php-build/share/php-build/default_configure_options
で編集しましょう!デフォルトでは、
--enable-sockets
--enable-exif
--with-zlib
--with-zlib-dir=/usr
--with-bz2
--enable-intl
--with-openssl
--enable-soap
--enable-xmlreader
--with-xsl
--enable-ftp
--enable-cgi
--with-curl=/usr
--with-tidy
--with-xmlrpc
--enable-sysvsem
--enable-sysvshm
--enable-shmop
--with-mysqli=mysqlnd
--with-pdo-mysql=mysqlnd
--with-pdo-sqlite
--enable-pcntl
--with-readline
--enable-mbstring
--disable-debug
--enable-fpm
--enable-bcmath
--enable-phpdbg
コメント