PHPでPDOやcURLを使う際、とても手こずってしまったので記録に残しておきます。環境はCentOS7です。
状況
PDOが動かない!
データベースを使いたかったためPDOを使用しようと試みたところ、ローカル環境(Windows)では動いたがConoHa上では500エラーが発生し、動かなかった。そこで、レンタルサーバーのロリポップ上でも試してみると動いた。
cURLのcurl_file_createが動かない!
ファイルをConoHaからHTTP通信で送信しようとしたところ、curl_file_create以降が実行されなかった。そこで、ロリポップ上でも試してみるとやはり動いた。なお、今回はローカル環境(Windows)では動かなかった。
原因
PDO
php-mysqliがインストールされていないのが原因だった(恥ずかしい…)。PHPを始めたばかりで、ライブラリの概念を知らなかった。
curl_file_create
今回はPDOの時と同一の原因を疑い、真っ先に再度インストールを行った。php -mで確認すると、無事インストールできていた。しかし、動かない…。PHP5.4からPHP7にアップデートするとなぜか動くようになった。
問題解決用のコード
PDOを使えるようにする(PHP5.4の時)
# yum -y install mariadb-server
# yum -y install php-mysqli
# systemctl restart httpd.service
<参考にさせていただいた記事>
Linux(CentOS7)でWebサーバーを構築する。 -MySQL導入編-
Linux(CentOS7)でWebサーバーを構築する。 -導入編Final-
PDOを使えるようにする(PHP7.xの時)
# yum install --enablerepo=remi,remi-php70 php-mysqlnd
<参考にさせていただいた記事>
php7をcentos6系にインストールしてPDOを使用する
PHP7をインストールし、curl_file_createを設定する
まず現在入っているPHPを削除
# sudo yum remove php-*
次に、PHP7をインストール
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install --enablerepo=remi,remi-php71 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt
yum -y install mariadb-server
yum -y install php-mysqli