PHPで画像サーバーを構築する方法
最近、自分の個人的な Web サイトを構築していたときに、Web サイト上で画像を保存および表示する方法という問題に遭遇しました。一般的にはWebサイトのサーバーに画像を直接アップロードすることもできますが、Webサイトの拡張性やパフォーマンスを考慮すると、専用の画像サーバーに画像を保存し、php操作で表示画像を呼び出すことができればと考えています。
以下では、画像サーバーを構築し、phpで呼び出して画像を表示する方法を詳しく紹介します。
まず、画像サーバー ソフトウェアを選択する必要があります。ここでは、無料のオープンソース ソフトウェア Piwigo を選択しました。 PHP と MySQL をベースにした画像管理システムで、アップロード、分類、タグ付け、検索、共有などの機能をサポートします。同時に、グローバルサポート、拡張性、パーソナライズされたデザインという特徴も備えています。
次に、次の手順に従ってイメージ サーバーを構築します:
1. サーバー環境を準備します
始める前に、Linux ベースのサーバー環境と Apache をインストールする必要があります。 PHPとMySQL。 Ubuntu、CentOS などの使い慣れたディストリビューションを使用できます。
2. Piwigo のダウンロード
Piwigo の最新バージョンを Piwigo 公式 Web サイト (https://piwigo.org/download/) からダウンロードし、指定したディレクトリに解凍できます。たとえば、/var/www/html/piwigo ディレクトリに抽出します。
3. データベースの作成
MySQL に piwigo という名前のデータベースを作成します。 MySQL コマンド ライン ツールまたは phpMyAdmin (インストールされている場合) を使用してデータベースを作成できます。
4. Piwigo の設定
MySQL データベースに接続できるように、Piwigo の設定ファイルを設定する必要があります。 /var/www/html/piwigo/local/config/config.inc.php ファイルを編集し、次の情報を入力する必要があります:
$conf['dbCharset'] = 'utf8mb4'; $conf['dbHost'] = 'localhost'; // 数据库所在的地址 $conf['dbName'] = 'piwigo'; // 数据库名 $conf['dbUser'] = 'root'; // 数据库用户名 $conf['dbPassword'] = 'password'; // 数据库密码 $conf['prefixeTable'] = 'piwigo_'; // 数据表的前缀
5. Piwigo をインストールする
Web サイトを開いてアクセスします。 / piwigo/install.php、インターフェースの指示に従ってインストールします。データベースを初期化するときは、データベースのユーザー名とパスワードを入力する必要があります。
6. 画像ストレージ パスの設定
デフォルトでは、Piwigo はアップロードされたすべての画像を /var/www/html/piwigo/galleries に保存します。ストレージ パスをカスタマイズしたい場合は、変更できます。設定ファイル /var/www/html/piwigo/local/config/config.inc.php の次のパラメータ:
$conf['dir_photos'] = PWG_LOCAL_DIR . 'photos/'; // 图片存储路径 $conf['dir_resized'] = PWG_LOCAL_DIR . 'upload/'; // 调整后的图片存储路径
7. 画像のアップロード
これで、Piwigo の Web バージョンを使用して、画像をアップロードする 。 Piwigo の管理インターフェースで、左側の「アップロード」ボタンをクリックし、アップロードする画像を選択します。
8. ピクチャーの呼び出し
最後に、php で表示ピクチャーを呼び出す方法を見てみましょう。 Piwigo は、画像とアルバムの情報をクエリできる一連の API を提供します。関連する関数は /var/www/html/piwigo/include/ws_functions.inc.php にあります。
たとえば、特定のアルバム内のすべての写真情報を取得するには、次のコードを使用できます:
// 引入 Piwigo 的 API require_once('/var/www/html/piwigo/include/ws_functions.inc.php'); // 获取相册 ID,这里假设为 1 $cat_id = 1; // 调用 API 获取相册中的所有图片信息 $photos = ws_getPhotos(array( 'cat_id' => $cat_id, 'nb_results' => 999, // 最多返回 999 张图片 )); // 遍历所有图片信息,输出相应的 HTML 代码 foreach ($photos as $photo) { echo '<a href="'.get_pwg_image_url($photo['id']).'">'; echo '<img src="'.get_thumbnail_url($photo['id']).'">'; echo '</a>'; }
上記のコードでは、最初に Piwigo の API を /var/www/ に導入しました。 html/piwigo/include/ws_functions.inc.php ファイルにアクセスし、アルバム ID を取得し、API を呼び出してアルバム内のすべての画像情報を取得し、最後にすべての画像情報を走査して、対応する HTML コードを出力します。
これで画像サーバーの構築と画像の表示操作が完了しました。もちろん、サーバー環境をさらに最適化し、キャッシュ メカニズムやその他の手段を追加して、Web サイトのパフォーマンスを向上させ、より良いユーザー エクスペリエンスを提供することもできます。
以上がPHPで画像サーバーを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、効率的なPHPアレイ重複排除について説明します。 Array_unique()などの組み込み関数をカスタムハッシュマップアプローチと比較し、配列のサイズとデータ型に基づいてパフォーマンスのトレードオフを強調します。 最適な方法は、プロビリに依存します

この記事では、PHPアレイの重複排除を分析し、素朴なアプローチ(O(n²))のパフォーマンスボトルネックを強調しています。 カスタム関数、splobjectStorage、およびハッシュセットの実装を使用して、array_unique()を使用して効率的な代替案を調査し、達成します

この記事では、Keyの一意性を使用してPHPアレイ重複排除について説明します。 直接的な重複除去方法ではありませんが、キーユニークネスを活用することで、キーに値をマッピングして重複を上書きすることにより、一意の値を持つ新しい配列を作成できます。 このAP

この記事では、RabbitMQとRedisを使用してPHPでメッセージキューを実装する詳細を示します。 それは、それらのアーキテクチャ(AMQP対インメモリ)、機能、および信頼性メカニズム(確認、トランザクション、永続性)を比較します。デザインのベストプラクティス、エラー

この記事では、PSRの推奨事項(PSR-1、PSR-2、PSR-4、PSR-12)に焦点を当てた現在のPHPコーディング基準とベストプラクティスを検証します。 一貫したスタイリング、意味のある命名、EFFを通じてコードの読みやすさと保守性を改善することを強調しています

この記事では、大規模なデータセットのPHPアレイ重力化の最適化について説明します。 Array_unique()、array_flip()、splobjectStorage、事前ソートなどの手法を調べ、効率を比較します。 大規模なデータセットの場合、チャンク、データブを示唆しています

この記事では、PHP拡張機能のインストールとトラブルシューティングの詳細で、PECLに焦点を当てています。 インストール手順(検索、ダウンロード/コンパイル、サーバーの再起動、再起動)、トラブルシューティングテクニック(ログのチェック、インストールの確認、

この記事では、PHPの反射APIについて説明し、クラス、方法、およびプロパティのランタイム検査と操作を可能にします。 一般的なユースケース(ドキュメンテーション生成、ORM、依存関係注入)とパフォーマンスオーバーヘアに対する注意の詳細
