Ubuntu Server 10.04 LTS i386、PostgreSQL + 1Cパッチ、1cサーバー+ Webインターフェイス:アセンブリ、インストール、構成

誰かがそれを必要とするかどうかはわかりません。





habrahabr.ru/blogs/linux/107321への反応から判断すると、これは必要です。



UPD 1スタート





下のコメントから、ありがとうOldFornit



1. texlive-binaries-このパッケージをインストールする必要はないと思われます。



2.「はい、Linuxプラットフォームは常に安定して動作するわけではありません。サーバーがクラッシュすることがよくあります。異なるバージョンは明らかに誰も書き込みません。

理由はわかっています-メモリの断片化。 1つのワークフローのライフタイムを制限する/メモリを1つのワークフロー(1.6G領域)に制限することは非常に役立ちます。 突然! 複数のワークフローが存在する可能性があります(そうあるべきです)。」



3.「はい。postgresのチューニングの説明や、少なくともこの問題に関する記事へのリンクはありません。この束を設定しても意味がありません。



wiki.etersoft.ru/PostgreSQL/Optimum?v=148t



EtersoftはPostgreSQLサポートを販売しています。





UPD 1終了





UPD 2スタート





1。

変更後

kernel.shmmax = 143217728

kernel.shmall = 143217728

次のコマンドで適用する必要があります。

sysctl -p



2。

作成する必要がある可能性があります

シンボリックリンク

libreadline.so.6



ln -s /lib/libreadline.so.6 /lib/libreadline.so.5



3。

texlive-binariesは必要ありません。インストールするだけです



aptitude install t1utils libt1-5



およびttf2pt1



altruistic.lbl.gov/mirrors/ubuntu/pool/universe/t/ttf2pt1



(ここから取得pg1c.ru/?page_id=173





UPD 2終了





したがって、誰かがUbuntuまたは1Cまたは「両方」を好まないかどうかを厳密に判断しないでください。



[1]ソース資料は、 www.opennet.ru / cgi-bin / openforum / vsluhboard.cgi?az = show_thread&omm = 0 &om = 67768&forum = vsluhforumID3に掲載されています。



このクラフトは追加と修正です。



[2]さらに、ネットワークの多くの資料、特にopenstar.com.ua/blog/installation-1-linux-postgresqlが使用されました



必要なマナをすべて照らし、オリジナルのRPMおよびDEBビルドを提供してくれたAilant(http://ailant.com.ru/)に感謝します。



同じAilantのIgor Vershinin(Igor Vershinin)に対する個人的な「尊敬と尊敬」。



また、Ailant'aの説明に従ってi386のアセンブリを作成した人、おそらく彼の名前はValeryです。



locale.genの資料は、1Cナレッジベースから取得されます。



それに取り掛かろうか?



そのため、私たちのタスクは以下を確立することです。

  1. Ubuntu Server 10.04 LTS。
  2. 1Cサーバー。
  3. 1C専用に構築されたPostgreSQLサーバー。


初期設定をしましょう。

サーバーをダウンロードしてインストールします。インストール中に、LAMPとSAMBAをすぐに選択します。

PHPとMySQLは必要ありませんが、あなたは決して知りませんが、突然、このマシンにもWebサーバーを作成することにします。

インストール後のサーバーの最初のコマンド:

sudo -i

apt-get install mc

apt-get install ntp

apt-get update

apt-getアップグレード

apt-get dist-upgrade

echo kernel.shmmax = `echo 128 * 1024 * 1024 | bc` >> /etc/sysctl.conf

echo kernel.shmall = `echo 128 * 1024 * 1024 | bc` >> /etc/sysctl.conf


私たちはチェックします:

nano /etc/sysctl.conf


最後に次のようにする必要があります。

kernel.shmmax = 143217728

kernel.shmall = 143217728


それが必要かどうかはわかりませんが、設定した場合に備えて、単に[2]の推奨事項に従いました。

apt-get install libxslt1.1 libxml2


今まさに必要なもの:

echo en_US ISO-8859-1 >> /etc/locale.gen

ロケール生成

ロケールの生成...

ru_RU.UTF-8 ...完了

en_US.ISO-8859-1 ...完了

生成が完了しました。


2つのシンボリックリンクを作成してみましょう。これなしでは、1C:EnterpriseはDBMSを操作できません。

ln -s /usr/lib/locale/en_US.utf8 / usr / lib / locale / en_US

ln -s / usr / share / locale / en / usr / share / locale / en_US







PostgreSQLのインストール

さらにいくつかの依存関係:

apt-get install postgresql-common postgresql-client-common libicu42 libossp-uuid16


次に、OpenNetの指示の説明に従ってPostgreSQLをビルドします。

http://v8.1c.ru/overview/postgres_patches_notes.htmから最新バージョンの3つのパッチをすべてダウンロードします(RPMはまだありますが、機能しません)。

バージョン8.4.1



バージョン8.4.1がまったく怖くないという事実は、 OpenNetによると、「 マイナーな修正はすべて、1Cパッチが適用されるという事実には影響しません。

>>「パッチの名前を変更し、名前の前に「20-」、「21-」、「22-」を追加します。つまり、20-1c_FULL_84-0.19.2.patch、21-postgresql-1c-8.4の形式にします。 .patch、22-applock-1c-8.4.1.patch。

フォルダ1Cをまだ作成していない場合は作成します。

PostgreSQLをダウンロードします:

apt-getソースpostgresql


>>「ダウンロード後、アーカイブは自動的に解凍され、Ubuntu固有のパッチが適用されます(最終アセンブリは「ネイティブ」になるため、これは非常に良いことです)。 次に、パッチを「/ debian / patch /」ディレクトリにコピーします。 次に、パッケージの正しいアセンブリを担当する3つのファイルを修正する必要があります。 3つのファイルはすべて、debianディレクトリに含まれています。

つまり すべてを段階的に行うと、「/ 1c / debian / patch」のようなものになります。

>>ファイル「changelog」。 アセンブリ後のパッケージの正しい名前を担当します。 ファイルの先頭に次の行を追加します。

postgresql-8.4([バージョンが8を超えるようにするためのプレフィックス、たとえば18] 8.4.4- [アセンブリを呼び出す場合] -0ubuntu10.04)lucid; 緊急度=低

* PostgreSQLの1Cパッチを適用します(8.4.1バージョンから)

-mchar、fulleq、fasttrunを追加します

-[名] [姓] <電子メール> [正しい形式の日付]

このファイルを注意深く見ると、最初にアセンブリのフルネームが表示され、次にアスタリスクの後に、何が正確に変更され、次に説明が、より詳細に、次に誰が具体的にパッチをコミットし、何が行われたかがわかります。

したがって、バージョンは[たとえば、最初に入力した数字]:18.4.4になります。これにより、将来、システムが更新されたときに個別に更新されなくなります。

新しいバージョンがリリースされた場合、PostgreSQLを再構築することでいつでも同じことができます。

はい、バージョン9がリリースされました。Ubuntu10.04 LTS向けに「自動ダウンロード」されていないのは良いことです。 これまでのところ、その互換性については何も言えません。

>>次のファイルは「control」です。

ライブラリ「libicu42」への依存関係を追加する必要があります(「1C」からのパッチに必要)。

リストの最後にある「Build-Depends」セクション(ファイルの先頭)に「、libicu-dev」を追加します。

行全体は次のようになります。



bison、flex、docbook-utils、openjade、docbook、libicu-dev




最後のファイルは「postgresql-contrib-8.4.install」です。 1Cモジュールの名前(mchar、fulleq、fasttrun)で行を追加する必要があります。 行の後:

usr / lib / postgresql / 8.4 / lib / pg_stat_statements.so

usr / lib / postgresql / 8.4 / lib / citext.so

usr / lib / postgresql / 8.4 / lib / btree_gin.so


追加する必要があります:

usr / lib / postgresql / 8.4 / lib / mchar.so

usr / lib / postgresql / 8.4 / lib / fulleq.so

usr / lib / postgresql / 8.4 / lib / fasttrun.so


しかし、それだけではありません。

>>なぜなら 32ビットコンピューターでi386を収集する場合、正しい「日付処理」を登録する必要があります。

これは/ debian / rulesファイルに示されています;実際、これはビルドの順番を示す通常のmakefileです。

31行目に「--enable-integer-datetimes」オプションがあり、「-disable -...」に置き換える必要があります。

ここで、最大のサイズのファイルである1Cからパッチ自体を修正する必要があります。

>> 1Cのパッチ0.19.3は、2118行目ではなく、少し変更して更新されました。

+言語CはNULL入力が不可能な場合にNULLを返します。

つまり、1つの変更された単語で使用されます。

+言語CはNULL入力揮発性でNULLを返します。

現在、「 適応操作は完了しと見なすことができます 。」

記事に示されているように、pbuilderでコンパイルします(>> "詳細については、 https: //wiki.ubuntu.com/PbuilderHowtoを参照してください ")。

これを行うために、実際に彼ともう1つの必要なライブラリを配置します。

apt-get pbuilder cdbsをインストールします


アセンブリスタンドを作成します。

pbuilder create


アセンブリスタンドを更新します(コンパイルの前に毎回が望ましい)。

pbuilderアップデート


PostgreSQLのソースがあるディレクトリに移動して、「say」と言います。

pdebuild


>>アセンブリが開始されました。 依存関係によると、初めて約500メガバイトがプルされるため、これに備える必要があります。 または、unlim-channel(自宅など)で収集します。 さらにパケットがキャッシュされます。 apt-proxyパッケージを使用しますが、これもこの方法を知っています。 複数のサーバーが機能する企業の場合、強くお勧めします。

組み立てはスムーズかつ穏やかに行われます。 最後に、収集されたパッケージはディレクトリ「/ var / cache / pbuilder / result」にあります。

そして、そうです。

受け取ったパッケージを/ varのどこかから取得します。

root(sudo -i)としてインストールを行います。

そして実際、PostgreSQLのインストールでは、自動補完にTABボタンを使用する場合、シーケンスが重要になります。これらの長い名前の入力は非常に簡単です。

dpkg -i libpq5_ [アセンブリの名前、8.4_8.4.5を得ました] -0ubuntu10.04_i386.deb

dpkg -i libpgtypes3_ [アセンブリの名前、8.4_8.4.5を得ました] -0ubuntu10.04_i386.deb

dpkg -i postgresql-client- [アセンブリの名前、8.4_8.4.5を得た] -0ubuntu10.04_i386.deb

dpkg -i postgresql-8.4_ [アセンブリの名前、8.4_8.4.5を得た] -0ubuntu10.04_i386.deb

dpkg -i postgresql-contrib-8.4_ [アセンブリの名前、8.4_8.4.5を得た] -0ubuntu10.04_i386.deb



これで、PostgreSQLがインストールされ、4番目のパッケージで起動されました。



簡単に確認します。

ps aux | grepの投稿


再起動後にPostgreSQLが常に起動することを確認します。



update-rc.d postgresql-8.4のデフォルト



書いた

/etc/init.d/postgresql-8.4のシステム開始/停止リンクは既に存在します。


PostgreSQLが正常に起動したことを確認し、存在するかどうかを確認します。

/etc/postgresql/8.4/main/pg_hba.conf


同時に、pg_hba.confを修正して、PostgreSQLが「ネットワーク上で簡単に見える」ようにします。

#タイプデータベースユーザーCIDR-ADDRESSメソッド

#localすべてのident同じユーザー#WAS

ローカルすべてのすべての信頼#BECAME

#host allすべて0.0.0.0/0 md5#WAS

すべて0.0.0.0/0の信頼をすべてホストする#BECAME


セキュリティの観点からは、これは確かに真実ではありませんが、機能します。

それでは、PostgreSQLのパスワードを修正しましょう。まだわかりません。

sudo passwd postgres


もちろん、これはデータベースのパスワードを設定しませんが、DBMSのパスワードを設定します。ネットワークで確認します。



さて、実際には、1Cのインストール。

初期準備には以下が含まれます。

apt-get install imagemagick msttcorefonts libgsf-1-114 texlive-binaries


users.v8.1c.ruから1Cをダウンロードします。もちろん、これはそこにアクセスできる人に適用されます。

ITSディスクまたはネットワークで検索を試みることができます...

さらに、すべてが非常に標準的で控えめなものであるため、次のように設定します。

1c-enterprise82-common_8.2.12-92_i386.deb

1c-enterprise82-common-nls_8.2.12-92_i386.deb

1c-enterprise82-server_8.2.12-92_i386.deb

1c-enterprise82-server-nls_8.2.12-92_i386.deb

1c-enterprise82-ws_8.2.12-92_i386.deb

1c-enterprise82-ws-nls_8.2.12-92_i386.deb

1c-enterprise82-crs_8.2.12-92_i386.deb

1c-enterprise82-crs-nls_8.2.12-92_i386.deb


すべてが正常であること、すべてがインストールされていることを確認します。

/opt/1c/v8.2/i386/utils/config_server


メッセージを表示せずに動作する必要があります。

それにもかかわらず、何かが出たら、指示に従うと、彼は欠けているものを誓います。

>>通常、パッケージの名前ではなく、欠落しているファイルを示します。 「apt-file search」を使用して、どのパッケージにあるかを確認できます。



再起動後に起動して実行できるようにします:



update-rc.d srv1cv82のデフォルト

サービスsrv1cv82の開始

ps aux | grep 1c


usr1cv82ユーザーに代わって、3つのプロセスを開始する必要があります。 プロセスが3つではなく1つである場合(何らかの理由でこれが発生する場合がありますが、最初の開始時のみ)、/ home / usr1cv82ディレクトリ内のすべてをバングします。



サービスsrv1cv82停止

叩いて

サービスsrv1cv82の開始


再起動して、すべてが機能することを確認します。

ps aux | grep apache

ps aux | grepの投稿

ps aux | grep 1c




それでは、Webサービスに対処しましょう。

通常、各クライアント接続にはキーが必要です。同じことがWebサービスにも当てはまり、各Webクライアントは1つの「無料ライセンス」を取得します。

Ubuntuの下でもHASP LMをインストールすることに煩わされたくありませんでした。 Alladin WebサイトのみTAR。

行きました。 プラットフォーム8.2がインストールされているWindowsコンピューターから、ファイルが取得されます。

C:\ Program Files \ 1cv82 \ conf \ nethasp.ini


ファイルはにあります

/opt/1c/v8.2/i386/conf/nethasp.ini


ファイルが編集されます

; NH_TCPIP =有効または無効。 TCP / IPプロトコルを使用する




NH_TCPIP =有効; TCP / IPプロトコルを使用する


これは約24行です。



そして110ライン

; NH_SERVER_ADDR = <Addr1>、<Addr2>; すべてのNetHASPのIPアドレス




NH_SERVER_ADDR = HASP LMがインストールされているコンピューターのIP


その後、Webサービスはライセンスの表示を開始します。



今、ウェブ自体。

フォルダー「/ 1c / web /」を作成しました。

default.vrdファイルに次のコンテンツを入れます。

<? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  1. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  2. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  3. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  4. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  5. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  6. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  7. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



  8. <? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .



<? xml version ="1.0" encoding ="UTF-8" ? > < point xmlns ="http://v8.1c.ru/8.2/virtual-resource-system" xmlns:xs ="http://www.w3.org/2001/XMLSchema" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" base ="/unf" ib ="Srvr=&quot;[ ]&quot;;Ref=&quot;[ ]quot;;" > < ws enable ="false" /> </ point > * This source code was highlighted with Source Code Highlighter .







空の未使用の/etc/apache2/httpd.confに次の行が追加されました。

LoadModule _1cws_module "/opt/1C/v8.2/i386/wsap22.so"


および/ etc / apache-2 / sites-enabled / 000-default





  1. エイリアス/ 1c "/ 1c / web"
  2. < ディレクトリ "/ 1c / web /" >
  3. AllowOverrideなし
  4. オプションなし
  5. 注文許可、拒否
  6. すべてから許可
  7. SetHandler 1cアプリケーション
  8. ManagedApplicationDescriptor "/1c/web/default.vrd"
  9. </ ディレクトリ >
*このソースコードは、 ソースコードハイライターで強調表示されました。




Apacheと1Cの両方がフォルダー「/ 1c / web /」にアクセスできることが重要です。

私は不器用に行動しました:

chmod 777 -R / 1c


なぜなら そのずっと前に、私はすでに次のようなものでセキュリティを「殺す」ことができました。

[共有]

コメント=すべて共有

閲覧可能=はい

パス= / 1c /シェア

ゲストOK =はい

読み取り専用=いいえ

マスクの作成= 0777

ディレクトリマスク= 0777


/etc/samba/smb.conf内。

はい、Linuxプラットフォームは常に安定して動作するわけではありません。サーバーが頻繁にクラッシュし、誰も異なるバージョンを明白に書き込むことはありません。

これを避けるために、典型的な松葉杖を使用します:

  1. 1Cスタータースクリプト(タンク内のユーザー: "/etc/init.d/srv1cv82")を取得し、それをパパにどこかにコピーします( "/ 1c / script"があります)。
  2. 必要に応じて修正します。ログにメッセージを表示することをお勧めします。試行錯誤によってそれを把握します...
  3. root(sudo -i)としてcrontab(man crontab)でハングアップします(サービスsrv1cv82を開始するだけで、開始を忘れないでください!)

    crontab -e

    * / 5 * * * *サービスsrv1cv82 start


誰かがhttp-Intranetの「フラットな」ベース8.2に興味がある場合は、次のものが必要です。

  1. 上記のタイプのフルボールは、構成用です。
  2. したがって、構成自体はこのボール内にあります。
  3. Apache設定自体は変更されません。default.vrdは変更されます。






  1. <? xml version = "1.0" encoding = "UTF-8">
  2. < ポイント xmlns = "http://v8.1c.ru/8.2/virtual-resource-system"
  3. xmlns:xs = "http://www.w3.org/2001/XMLSchema"
  4. xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
  5. base = "/ new"
  6. ib = "File =&quot; [/ 1c / bazaのようなボールへのパス]&quot ;;" >
  7. < ws enable = "false" />
  8. </ ポイント >
*このソースコードは、 ソースコードハイライターで強調表示されました。




これで、並べ替えはそれだけです。



念のため:

  1. 使用可能なWindowsリソースのマウントは、次のように実行されます。sudosmbmount \\\\ [コンピューター名] \\ [リソース名] / mnt -oユーザー名= [ユーザー名]、パスワード= [パスワード]、[rw?]、Iocharset = utf8
  2. / etc / network / interfaces:

    iface eth0 inet static

    アドレス192.168.XXX.XXX

    ネットマスク255.255.255.0

    ゲートウェイ192.168.XXX.XXX

    また、/ etc / resolv.confで「すべてがOK」と表示されていることも確認してください。
  3. プロキシがある場合は、/ etc / .wgetrc、/ etc / apt / apt.conf、/ etc / environmentを忘れずに、https_proxy http_proxyおよびftp_proxyを= http:// [user]:[pass] @ [IP:ポート ]
  4. Samba Shareには、chmodを与える必要があることを忘れないでください
  5. 厳密に言えば、Apacheは/ optについて何も知らないことを忘れないでください。chmodを与える必要があるかもしれません。




すべてがコンソールにあることに注意してください。「GUIは心の弱い人向け」という単純な真実を使用し、マシンは仮想マシン上にあります:)。



確かに。



All Articles