PHP
curl
PDO
PHP7

PHP PDO、cURLを使う方法(環境構築の備忘録)

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

参考:CentOS7にPHP7をyumでインストールする