web-dev-qa-db-ja.com

Ubuntuでの開発環境のセットアップ

私は長い間Windowユーザーです。最近、JavaScript/PHP/mySqlを学び、UbuntuServerが選択されると考えました。ただし、Windows XP/7でも作業します。これが私の考えです

  • 開発マシン(XP/7):すべてのプログラミングを行う場所。 IDEはSpket(JavaScript)とAptana(PHP)になります。 PhotoShop、Officeなどの他のソフトウェアと一緒に...
  • サーバー(Ubuntu Lucid):ここにデータを保存し、HTTP、電子メール、FTPサーバーを実行します...これはVPSになります。

簡単に言えば、私はクライアントとしてWindows(IDE、クライアント電子メールソフトウェア、FTP ...)を使用し、サーバーとしてUbuntuを使用してデータ(Mercurial、Apache、mySql ...)を管理します。

私は新しいです、これをやっていて、クライアント/サーバーのこの組み合わせで働いている誰かがすでにいるのだろうかと思います。この方法の考えられる欠点は何ですか? FTPを介してVPSで作業するのは良い考えですか?

私はソロ開発者です。ここ数日、クラウドを操作するための最善のアプローチを考えていました。私はウェブ開発をしています。関連して役立つものがあれば返信してください。作業環境について長い投稿を書いてくれる多くの開発者に感謝します。私は具体的な考えをまったく考えていません。ただ改善することを目指しています。

ありがとうございました!

4
Omar Abid

確かに多くの人がWindowsクライアントでUbuntuサーバーを使用しています。 buntuサーバーガイド あなたがやりたいことのほとんどすべてをカバーしています。

提案されたセットアップに関するいくつかのコメントは次のとおりです。

  • FTPを捨てます。代わりにSSHを使用してください。個人的には、キーベースの認証を設定し、パスワード認証を無効にする必要があることも付け加えておきます。ヘルプについては、 このページ を参照してください。

  • 言及されているbackupソリューションは見当たりません。必ず定期的にバックアップしてください。

  • Gitを検討してください。 MercurialではなくGitの使用を検討したいと思いますが、それは個人的な好みです。

  • セキュリティについて最初から考えてください。特に、Webに直面する場合はそうです。再度(1)を参照してください。セキュリティの専門家である必要はありませんが、少なくとも次のことを考慮する必要があります。

    1. ファイアウォールを使用します。 Ubuntu Serverでは、これはufwを使用して簡単に実行でき、ガイドで説明されています。
    2. 不要なサービスを実行しないでください。具体的には、phpmyadminのようなものには近づかないでしょう。
    3. 他の人に必要のないアクセスや特権を提供しないでください。
    4. 監査とロギングについて考えてください。

私があまり強くプッシュしたくないというより一般的なコメントは、開発プロセスをLinuxに移行することも検討するかもしれないということです。私の経験では、Linuxで利用できるツールを使用すると、リモートサーバーでの作業がはるかにスムーズになります。

5
Steven D

Web開発者が開発にWindowsを使用する必要はないと思います。ただし、テストにはWindowsプラットフォームが必要です。ところで、ツールのリストに含めないのはどれですか。複数の異なるプラットフォーム用のある種の自動テスト環境が必要ですが、それはすべてVMで実行できます。

私はSpketのようにIDEを使用しませんが、基本的で(一般的に言えば)高度にプログラム可能なエディターの1つであるemacs、vi、またはEclipseを学びます。

また、すべてのコードにクライアント側でMercurialを使用します。

1
HandyGandy

Samba および here を見てください-これらは多くの要件に対応する必要があります。 Webサーバーのニーズに対応するApache(ubuntuに標準装備)。あなたが必須がFTPを持っているなら、私は提案します sftp

バックアップについては this を見てください

0
slashmais

cygwin は、Linuxサーバーとの通信に非常に役立ちます。 rsync、ssh、scp、およびこれらすべてのツールを使用して、ファイルを前後にコピーできます。また、とにかくすぐにUNIXツールに慣れ始めるので、おそらくそれらのツールを作業マシンにもインストールする必要があります。

PuTTY を使用することを好む人もいますが、ネイティブのLinuxツール(ssh-agentなど)と同じ概念で動作するため、cygwin + mintty + opensshの方がはるかに適していると思います。

最後の注意、そしてこれについて私に同意しない人もいるかもしれません。cygwinとlinuxの間でファイルをコピーする場合は、 /etc/fstab を編集してACLを無効にすることをお勧めします。

0
itsadok