このサイトでは、分析、カスタマイズされたコンテンツ、および広告に Cookie を使用します。このサイトを引き続き閲覧すると、Cookie の使用に同意するものと見なされます。
Web 開発
ActivePerl をセットアップして localhost で Perl CGI を使えるようにします。
「IIS 10 express をセットアップして localhost を使う」
で Windows 10 Pro に IIS 10.0 をセットアップしました。
これで、ローカルな環境にサーバーソフトがインストールされましたので、
localhost が利用可能となり、JavaScript の XMLHttpRequest 機能が利用できるため、
クライアント側のデバッグが、ローカルで実行できるようになりました。
例えば、「サーバーにある CSV ファイルを読み込む」にあるように、
サーバーにあるテキストファイルを読み込んで処理する、のようなことが、
実際のサーバーがなくてもテスト可能となりました。
今度は、ファイルのアップロード処理などを実行する方法を探しました。
ファイルのアップロードを実現するには、サーバー側で CGI を動作させる必要があり、
それを実際のサーバーで行うのは危険かつ迷惑になりかねません。
CGI をローカルでテストできるよう、セットアップが必要です。
ここでは Perl で書かれた CGI を実行するためのソフトを導入します。
なお、本サイトのご利用に際しては、必ずプライバシーポリシー(免責事項等)をご参照ください。
すでに IIS がセットアップ済みかどうかを確認する
投稿 November 9, 2020
ローカルな場所に置いた html ファイルで、HTTP リクエストを含む JavaScript コードを実行しても、
サーバーがセットアップされていなければ失敗します。
XMLHttpRequest
また、
などのソフトがセットアップ済みであっても、
C:\website\myscript.html のように html ファイルにアクセスすれば、
同じように失敗します。
サーバーソフトがインストールされ、セットアップされているかどうかを確認するには、
ブラウザのアドレスバーに、
http://localhost/
のように入力してみます。
意味としては、ローカルにあるサーバーのルートを表示する、です。
IIS などのサーバーソフトがセットアップされていない場合、エラーとなり、
「このサイトにアクセスできません」のように表示されてしまいます。
もし IIS がセットアップ済みなら、IIS のトップページが表示されます。
インストールやセットアップについては、
「IIS 10 express をセットアップして localhost を使う」
に書いています。
ActivePerl をダウンロードする
投稿 November 9, 2020
ネットでは、さまざまな Perl 実行環境が紹介されていますが、
調べたところでは、Win10 + IIS に一番簡単に導入できそうなのは、
ActivePerl であると判断しました。
ActivePerl をネットで検索すると、最初に、または最初のほうに
「窓の杜」が出てきます。
ここにあれば、安心してインストールできると思えます。
実際にはここからはダウンロードできず、公式サイトにリンクしますが、危険はなさそうです。
「公式サイトからダウンロード」ボタンをクリックすると、
提供元である ActiveState のサイトの Perl のページにジャンプします。
ボタンのリンク先が別のフォルダにリダイレクトされているようで、Edge で読み込みに時間がかかっています。
かなり待ちましたが、待っていたらページが表示されました。
開かれたページは、
https://www.activestate.com/products/perl/
です。
以降、ご参考までに簡単に訳を書きますが、必ずしも正確でない可能性もありますので、
それをご理解の上、読み進めてください。
ActiveState 提供の Perl
小さい字は説明です。
ActivePerl : ActiveState が提供する、商用レベルの Perl で、あなたのミッション・クリティカルなアプリケーションをサポートします。
Windows で、Mac で、そして Linux で、無料で Perl 開発をスタートしよう!
「DOWNLOAD NOW」ボタンが見え、ページが終わっているように見えますが、
スクロールさせていくとまだまだ先があります。
ActiveState 社は、
カナダのソフトウェア会社のようです。
Perl やそのモジュールを提供していますが、サポートで利益を得る構造になっているようです。
無料でソースも参照でき、それを自分用にビルドすることもできるようですが、
入手するには無料のアカウントを作成する必要がありそうです。
あとは宣伝などですので、ページのトップに戻って「DOWNLOAD NOW」ボタンをクリックします。
初期状態で、上図のように Windows が選択されており、バージョン 5.26 か 5.28 かを選べるようです。
その下に書いてありますが、32-bit 版やこれより古いバージョンは、
ActiveState Platform の有料サブスクリプションでダウンロードできるようです。
「See pricing here」
のリンク先を見てみると、コミュニティ版は無料ですが、それ以上は年額そこそこかかります。
価格表のページの下のほうに「Create Account」ボタンがありますが、
一般的な手順を追いたいので、今は価格表のページを閉じます。
その下には、ちょっとした説明が書かれています。
ActivePerl は現在、ActiveState Platform 経由で提供されています。
無料アカウントを作成して、これらの利益を享受しよう。
・Perl をダウンロードして更新の通知を受ける
・Perl を必要な部分だけカスタマイズする
・あなたのチームで Perl 実行環境をシェアする
新しいほうの「ActivePerk 5.28」のボタンをクリックしてみます。
ActivePerl-5.28.msi というファイルのダウンロードに見えます。
拡張子 msi は、Windows インストーラーパッケージ、
すなわち Microsoft 形式のインストーラーであることを意味しています。
ログインページが出て無料アカウント作成に進むのかと思いきや、直接ダウンロードされました。
ブラウザは Edge で操作していますので、ウィンドウの左下にダウンロード状況が表示されます。
このダウンロード中画面にあるボタンは、このダウンロードに時間がかかるかスタートしない場合、
別サイトからダウンロードするためのリンクのようです。
その下の説明としては、前の繰り返しですが、アカウント登録が必要になる場合があり、
また、EXE や ZIP 形式の ActivePerl は、登録後の画面のビルドタブにある、ということです。
32 ビット版のインストーラーが欲しい場合は、有料オプションの「チーム・ティア」を契約する必要がある、
ということです。
Edge では保存先フォルダ指定画面が出なかったので、ファイル名右側の「横3点メニュー」を左クリックし、
「フォルダーに表示」を選ぶと、エクスプローラーが開かれます。
ダウンロードフォルダにダウンロードされており、
ファイルサイズを見ると、6 MB 弱でした。
画面をスクロールしていくと、メールアドレスの入力欄があります。
通常入力必須を意味する、赤い星マークもついています。
私たちが開発する素敵なモノの最新情報を得よう!
そして ActivePerl の更新版が出たら、通知を受けよう!
ということですが、「いつでも購読を中止できます」とあり、
登録すべきかどうかを迷いますが、必要になるまでは入力しないこととします。
ページの最後に「開発目的を超えて使う、例えばアプリと一緒に配布する場合は連絡が必要です」とありますが、
私は開発目的のみなので、問題ありません。
結局、ここでのメールアドレス入力は自由のようで、登録しなくても問題なさそうです。
あるいは、インストール時に必要になったら、で良さそうです。
ActivePerl をインストールする
投稿 November 9, 2020
ダウンロードされた ActivePerl-5.28.msi を実行して、インストールします。
まだ画面の左下にダウンロードしたファイルが表示されていれば、「ファイルを開く」で実行します。
閉じてしまった場合は、エクスプローラーでダウンロードフォルダを開けば見つかります。
保存先フォルダを指定してダウンロードした場合は、指定したフォルダです。
セットアップ・ウィザードが開きましたので、簡単にインストールできそうです。
まずは「Next」ボタンをクリックし、インストールを開始します。
プライバシー同意書です。
ActiveState は、利用統計とエラー時の診断データを収集します。
収集されたデータは、プライバシーポリシーに準じて利用され、製品の改善や欠陥の修正、不法利用の防止に使用されます。
I agree のボタンとかチェックとかありませんが、Next で同意したことになるのでしょう。
ActiveState Privacy Policy の部分がリンクになっていますが、
続行するには拒否できませんし、問題なさそうなので、先に進みます。
今度はライセンス同意書です。
ウィンドウは狭く、文字は大きいですが、スクロールバーの様子からわかるように、長いです。
全文を訳したかったところですが、読むのでさえ大変なので、やめました。
が、無視すると良くないので、インストール時点のバージョンを置いておくことにします。
原文を展開
ACTIVESTATER COMMUNITY EDITION LICENSE AGREEMENT
Version effective date: March 25, 2019
This license agreement (the "Agreement") is made between you (either an individual or a company or organization, not including its affiliates or wholly owned subsidiaries) ( "You"?) and ActiveState Software Inc. ( "ActiveSstate"?). This Agreement establishes the terms under which ActiveState will license the Software (as defined below) to You and establishes the terms under which You may use, copy, modify, distribute, and/or Redistribute (as defined below) the Software. This Agreement does not apply to Maintenance and Support, anything Beyond Development Use, OEM Distribution (all such capitalized terms as defined below) each of which requires a separate agreement with ActiveState. For more information on these types of agreements, please visit www.activestate.com. The intent of this Agreement is to allow ActiveState to maintain control over the development and distribution of the Software while allowing its use in a variety of ways. If the terms and conditions of this Agreement do not permit Your proposed use of the Software or if You require clarification regarding the scope of Your intended use of the Software, please contact sales@activestate.com.
PLEASE READ THIS AGREEMENT CAREFULLY BEFORE INSTALLING OR USING THE SOFTWARE. BY CLICKING ON "YES, ACCEPT"? OR BY INSTALLING THE SOFTWARE, YOU AGREE TO BE BOUND BY THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU ARE ENTERING INTO THIS AGREEMENT ON BEHALF OF A PERSON, YOUR ACCEPTANCE REPRESENTS THAT YOU HAVE THE AUTHORITY TO BIND SUCH PERSON TO THE TERMS AND CONDITIONS OF THIS AGREEMENT, IN WHICH CASE "YOU"? OR "YOUR"? WILL REFER TO THE PERSON ON BEHALF OF WHICH YOU ACT ("YOUR ENTITY"?). IF YOU DO NOT AGREE WITH THE TERMS AND CONDITIONS OF THIS AGREEMENT OR IF YOU DO NOT HAVE THE AUTHORITY TO BIND YOUR ENTITY, YOU HAVE NO RIGHT TO INSTALL OR USE THE SOFTWARE AND YOU SHOULD (A) RETURN, DELETE, OR DISABLE THE SOFTWARE OR (B) IF YOU PURCHASED A PRODUCT FROM ACTIVESTATE OR ITS RESELLER OR DISTRIBUTOR ON WHICH THE SOFTWARE IS PRE-INSTALLED BY ACTIVESTATE, RETURN THE PURCHASED PRODUCT TO ACTIVESTATE OR THE APPLICABLE RESELLER OR DISTRIBUTOR FROM WHOM YOU OBTAINED THE PRODUCT.
1. Definitions.
"Accessible Code"? means source code contained within the Software that is licensed under an open source license. "Confidential Information"? means all information designated in writing as confidential by each party, or which under the circumstances of disclosure reasonably ought to be considered as confidential. Without limiting the foregoing, ActiveState Confidential Information includes the Software, including all source and object code, and all associated documentation, but not Accessible Code.
"Maintenance And Support" means maintenance and support for the Software provided by ActiveState under separate terms.
"OEM Distribution" means any distribution to, and/or use of the Software by, others outside Your organization and distribution and/or use of the Software as either a bundled add-on to, or embedded component of another application, with such application being made available to its users as, but not limited to, an on-premises application, a hosted application, a software-as-a-service offering or a subscription service for which the distributor of the application receives a license fee or any form of direct or indirect compensation and whether for commercial or non-commercial purposes.
"Person"? means any individual, sole proprietorship, partnership, firm, entity, unincorporated association, unincorporated syndicate, unincorporated organization, trust, body corporate or governmental or regulatory authority, and where the context requires, any of the foregoing when they are acting as trustee, executor, administrator or other legal representative.
"Beyond Development Use"? means any use of the Software licensed under this Agreement beyond software development with the Software. For greater clarity, any use of the Software licensed under this Agreement beyond the purpose of developing, prototyping or demonstrating Your application with the Software or by the Software are not permitted
under this license.
"Redistribute"? means any distribution to, and/or use of the Software by, others inside or outside Your organization and distribution and/or use of the Software inside or outside Your organization.
"Software"? means any of ActivePerl, ActivePython, ActiveTcl, ActiveGo, ActiveRuby, ActiveNode, or ActiveLua software and the accompanying materials including, but not limited to, source code, binary executables, documentation, images and scripts, which are distributed by ActiveState, and derivatives of that collection and/or those files.
"User Data"? means all information and data collected by the Software or otherwise transmitted by the Software to ActiveState, including any data, metadata, metrics, statistics, or other information relating to the performance, operations, resource, health, or other conditions of the Software, any component thereof (including third party components), and any related infrastructure, such as network host names, IP addresses, interpreter used, and system architecture, which includes filenames, full path, file size, and content hash.
"Wrapped Application"? means a single-file executable in which all binary components are encapsulated in a single binary without exposing the base programming language as a scripting language within Your own application program to end users.
2. License Grant.
(a) Subject to the terms and conditions of this Agreement, ActiveState hereby grants to You a limited, worldwide, perpetual, paid up, free-of-charge, non-exclusive, non-transferable, non-assignable, and non-sublicensable license to install and use the Software on any computing device, in accordance with the limitations and restrictions set forth in this Agreement, for research and development purposes only. You may not use the Software Beyond Development Use, except as provided in Section 2(b) below. You may not use the Software for OEM Distribution. You may copy the Software for archival purposes or as necessary to use the Software as authorized in this section. You also may modify the Accessible Code to develop bug fixes, customizations, or additional features, for the sole purpose of using the Software as authorized by this Agreement.
(b) ActiveState may, in its sole discretion, grant You the right to use the Software Beyond Development Use and/or OEM Distribution for limited, small-scale, non-commercial and/or open source projects. To apply for this right, contact sales@activestate.com. Without the prior approval of ActiveState, you may not use the Software Beyond Development Use and/or for OEM Distribution.
3. Restrictions.
(a) Except as expressly provided in this Agreement, You may
not:
(i) transfer, assign, sublicense, resell, or rent the
Software;
(ii) modify or translate the Software to discover the
source code in the Software or create a functional
equivalent in the Software;
(iii) reverse engineer, decompile, or disassemble
(except as and only to the extent this restriction
is prohibited by applicable law) the Software;
(iv) create derivative works based on the Software;
(v) merge the Software with another product;
(vi) copy the Software;
(vii) remove or obscure any proprietary rights notices
or labels on the Software;
(viii) Redistribute, without entering into a separate
agreement with ActiveState:
I. the Software as a whole, whether as a Wrapped
Application or on a standalone basis;
II. parts of the Software to create a language
distribution; or
III. the Software (other than the Accessible
Code) with Your Wrapped Application;
(ix) distribute the Software by OEM Distribution
without entering into a separate OEM Distribution
agreement with ActiveState;
(x) permit others to use the Software; or
(xi) use the Software:
I. Beyond Development Use on any computing
device in whatever form or manner, whether
physical or virtual and external or
internal-facing;
II. on any operating systems other than Windows,
OSX, and Linux;
III. on computing devices used for file and/or
application serving;
IV. on any computing devices used for business
continuity and disaster recovery; or
V. to provide content or functionality through
external-facing servers or internal-facing
production servers.
4. Confidentiality.
(a) Except as reasonably required to exercise Your rights under this Agreement, You agree to prevent any unauthorized copying, use, distribution, installation or transfer of possession of Confidential Information received from ActiveState (the "ACTIVESTATE CONFIDENTIAL INFORMATION"?). You do not acquire any interest in any ActiveState Confidential Information by reason of this Agreement. ActiveState Confidential Information does not include any information which (i) becomes part of the public domain through no act or omission on Your part; (ii) is lawfully acquired by You from a third party without any breach of confidentiality; (iii) is independently developed by You without reference to the ActiveState Confidential Information; or (iv) is disclosed in accordance with judicial or other governmental order or timely disclosure requirements imposed by law or stock exchange policies. Notwithstanding the foregoing, either party may disclose the terms and conditions of this Agreement in conjunction with legal proceedings. Without limiting the generality of the foregoing, You must take reasonable steps to prevent any personnel from removing any proprietary or other legend or restrictive notice contained or included in any material provided by ActiveState to You.
(b) You acknowledge that any use or disclosure of the ActiveState Confidential Information in a manner inconsistent with the provisions of this Agreement may cause ActiveState irreparable damage for which remedies other than injunctive relief may be inadequate. You further agree that ActiveState will be entitled to attempt to receive from a court of competent jurisdiction injunctive or other equitable relief to restrain such use or disclosure in addition to other appropriate remedies.
5. Open Source Acknowledgement. The Software is comprised of open source software, which is subject to the terms of the open source software license(s) accompanying or otherwise applicable to that open source software included in the Software (the "Open Source Components"?). For reference, Tcl/Tk open source license terms can be found in Exhibit A attached to this Agreement or obtained from this link: https://www.tcl.tk/software/tcltk/license.html. You acknowledge that Your own distribution or deployment of instances containing or linking to the Software, including the Open Source Components, or any other open source software may trigger open source license requirements for which You are responsible. Nothing in this Agreement limits Your rights under or grants rights to You that supersede the terms of any applicable open source software license for the applicable Open Source Components.
6. Intellectual Property Ownership. All right, title and interest in and to the Software and all intellectual property rights embodied therein, including copyrights, trade names, trademarks, service marks, product names, trade secrets embodied in the Software's design and coding methodology and other proprietary materials in the Software belong exclusively to ActiveState or its third party licensors. The Software is protected by Canada and United States copyright laws and international treaty provisions as implemented locally in different jurisdictions. Except as specifically provided under this Agreement, You acknowledge that no other right, title or interest in and to the Software or any parts thereof is granted to You. ActiveState grants You the limited right to use the trade names, trademarks, service marks or product names of ActiveState as required for reasonable and customary use in describing the origin of the Software. You may not use the trade names, trademarks, service marks or product names of ActiveState in any way that might state or imply that ActiveState endorses Your work, or might state or imply that You created the Software.
7. User Data. You acknowledge, agree, and expressly consent to ActiveState"?s collection of Your User Data through the Software. ActiveState does not claim ownership of any User Data. You hereby grant to ActiveState and its sublicensees a royalty-free, perpetual, irrevocable, transferable, worldwide non-exclusive right to reproduce, analyse, review, process, diagnose, or otherwise use the User Data (in whole or in part) for the purpose of supporting, maintaining, and providing the Software, the Maintenance and Support, if any, and any related services provided by ActiveState relating to the Software (the "User Data License"?). ActiveState will not disclose the User Data to any third parties and will only use the User Data in accordance with the User Data License, except that ActiveState may provide Your User Data to third parties providing services relating to the Software to ActiveState (which will protect the User Data on terms and conditions that are commensurate in scope with this Agreement). In addition to the rights granted under the User Data License, You acknowledge and agree that ActiveState has the right to (i) publicly disclose, in any manner whatsoever, User Data that have been anonymized; and (ii) review or analyze the User Data and publicly disclose any results of such review or analysis, including in the form of reports, blog posts, newsletters, marketing materials, or otherwise, provided You will not be identified in such publicly disclosed materials.
8. Term. This Agreement will be effective upon Your agreement to be bound by the terms and conditions of this Agreement and will continue in effect unless otherwise terminated in accordance with the terms and conditions of this Agreement.
9. Termination. If You breach any term or condition of this Agreement, ActiveState may immediately terminate this Agreement with respect to the Software that You have licensed under this Agreement by providing notice to You. ActiveState may also terminate this Agreement, without any liability to You, if any law, regulations, orders, or legal requirements prohibits ActiveState"?s provision or licensing of the Software to You. Upon termination of this Agreement by ActiveState, You will immediately cease all use of the Software and return all copies of the Software that are under Your control to ActiveState or to delete all such copies.
10. Infringement Indemnification. You indemnify, hold harmless, and defend ActiveState, its licensors, and their respective employees, agents and distributors against any and all claims, proceedings, demands and costs resulting from or in any way connected with Your use of the Software and arising from Your breach of this Agreement; provided, however, that ActiveState will notify You in writing of any such claim. ActiveState will not enter into any settlement or compromise any such claim without Your prior written consent. You will have sole control of any such action and settlement negotiations; and ActiveState will provide You with commercially reasonable information and assistance, at Your request and expense, necessary to settle or defend such claim.
11. Disclaimer Of Warranty.
(a) NEITHER ACTIVESTATE NOR ANY OF ITS SUPPLIERS, LICENSORS, OR RESELLERS MAKES ANY WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, UNDER THIS AGREEMENT. TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, ACTIVESTATE AND ITS SUPPLIERS, LICENSORS, AND RESELLERS SPECIFICALLY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH RESPECT TO THE SOFTWARE, EITHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OR CONDITION OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, DURABILITY, MERCHANTABLE QUALITY, FITNESS FOR A PARTICULAR PURPOSE, UPDATES, UPGRADES, SUPPLEMENTS, PRODUCTS, APPLIANCES, SYSTEM INTEGRATION, DATA ACCURACY AND ANY OTHER ITEMS PROVIDED HEREUNDER. ACTIVESTATE MAKES NO WARRANTY OR GUARANTEE THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, ERROR-FREE, OR VIRUS-FREE, OR THAT THE SOFTWARE WILL MEET ANY PARTICULAR CRITERIA OF PERFORMANCE, QUALITY, ACCURACY, PURPOSE, OR NEED. YOU ASSUME THE ENTIRE RISK OF SELECTION, INSTALLATION, AND USE OF THE SOFTWARE. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT.
(b) TO THE EXTENT ANY IMPLIED WARRANTIES CANNOT BE DISCLAIMED UNDER APPLICABLE LAW, ANY IMPLIED WARRANTIES ARE LIMITED IN DURATION TO THE PERIOD REQUIRED BY APPLICABLE LAW.
(c) SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS ON APPLICABLE STATUTORY RIGHTS OF A CONSUMER, AND SO SOME OR ALL OF THE EXCLUSION OF IMPLIED WARRANTIES OR LIMITATIONS SET OUT IN THIS SECTION MAY NOT APPLY TO YOU.
12. Limitation Of Liability.
(a) INDEPENDENT OF THE FOREGOING PROVISIONS, TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, IN NO EVENT AND UNDER NO LEGAL THEORY, INCLUDING WITHOUT LIMITATION, TORT, CONTRACT, OR STRICT PRODUCTS LIABILITY, WILL ACTIVESTATE, ITS DIRECTORS, OFFICERS, EMPLOYEES, AFFILIATES, AGENTS, CONTRACTORS, PRINCIPALS, SUPPLIERS OR LICENSORS BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY KIND, INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER MALFUNCTION, OR ANY OTHER KIND OF COMMERCIAL DAMAGE, EVEN IF ACTIVESTATE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
(b) TO THE MAXIMUM EXTENT PERMITTED UNDER APPLICABLE LAW, IN NO EVENT WILL ACTIVESTATE BE LIABLE TO YOU FOR DAMAGES UNDER THIS AGREEMENT FOR ANY CAUSE WHATSOEVER, AND REGARDLESS OF THE FORM OF ACTION.
13. Export Controls. You must comply with all export laws and restrictions and regulations of Canada, the United States or foreign agencies or authorities, and not to export or re-export the Software or any direct product thereof in violation of any such restrictions, laws or regulations, or without all necessary approvals. As applicable, each party will obtain and bear all expenses relating to any necessary licenses and/or exemptions with respect to its own export of the Software from Canada or the U.S. Neither the Software nor the underlying information or technology may be electronically transmitted or otherwise exported or re-exported: into any country subject to Canada or U.S. trade sanctions covering the Software, to individuals or entities controlled by such countries, or to nationals or residents of such countries other than nationals who are lawfully admitted permanent residents of countries not subject to such sanctions; to anyone on Canada's Area Control List of the Export and Import Permits Act; or to anyone on the U.S. Treasury Department's list of Specially Designated Nationals and Blocked Persons or the U.S. Commerce Department's Table of Denial Orders. By installing or using the Software, You agree to the foregoing and represent and warrant that it complies with these conditions.
14. U.S. Government End-Users. The Software is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire the Software with only those rights as are granted to all other end users pursuant to the terms and conditions herein. Unpublished rights are reserved under the copyright laws of Canada and the United States.
15. Licensee Outside The U.S. If You are located outside the U.S., then the following provisions will apply: (a) Les parties aux presentes confirment leur volonte que cette convention de meme que tous les documents y compris tout avis qui siy rattache, soient rediges en langue anglaise (translation: "The parties confirm that this Agreement and all related documentation is and will be in the English language."); and (b) You are responsible for complying with any local laws in Your jurisdiction which might impact Your right to import, export or use the Software, and You represent that You have complied with any regulations or registration procedures required by applicable law to make this license enforceable.
16. Entire Agreement. This Agreement constitutes the entire understanding of the parties with respect to the subject matter of this Agreement and merges all prior communications, representations, and agreements.
17. Severability. If any provision of this Agreement is declared invalid or unenforceable, such provision will be deemed modified to the extent necessary and possible to render it valid and enforceable. In any event, the unenforceability or invalidity of any provision will not affect any other provision of this Agreement, and this Agreement will continue in full force and effect, and be construed and enforced, as if such provision had not been included, or had been modified as above provided, as the case may be.
18. Entire Agreement & Amendment. This Agreement constitutes the complete agreement between the parties and supersedes all prior or contemporaneous agreements or representations, written or oral, concerning the subject matter of this Agreement, appendices and attachments. ActiveState reserves the right to change this Agreement at any time, which change shall be effective as of the effective date for the terms and conditions of this Agreement as shown on ActiveState"?s Website (the "Change Effective Date"?). Your continued use of the Software after the Change Effective Date constitutes Your acceptance of such changes. This Agreement may not be otherwise amended without ActiveState's prior written agreement. You agree to periodically review the terms and conditions of this Agreement as updated from time to time on ActiveState"?s website.
19. Arbitration. Except for actions to protect intellectual property rights and to enforce an arbitrator's decision hereunder, all disputes, controversies, or claims arising out of or relating to this Agreement or a breach thereof will be submitted to and be finally resolved by arbitration under the rules of the American Arbitration Association ("AAA") then in effect. There will be one arbitrator, and such arbitrator will be chosen by mutual agreement of the parties in accordance with AAA rules. The arbitration will take place in Vancouver, BC, Canada, and may be conducted by telephone or online. The arbitrator will apply the laws of the Province of British Columbia, Canada to all issues in dispute. The controversy or claim will be arbitrated on an individual basis, and will not be consolidated in any arbitration with any claim or controversy of any other party. The findings of the arbitrator will be final and binding on the parties, and may be entered in any court of competent jurisdiction for enforcement. Enforcements of any award or judgment will be governed by the United Nations Convention on the Recognition and Enforcement of Foreign Arbitral Awards. Should either party file an action contrary to this provision, the other party may recover legal fees and costs up to $1,000.00.
20. Jurisdiction And Venue. The superior courts of Vancouver in the Province of British Columbia, Canada will be the exclusive jurisdiction and venue for all legal proceedings that are not arbitrated under this Agreement.
21. Force Majeure. Neither party will be liable for damages for any delay or failure of delivery arising out of causes beyond their reasonable control and without their fault or negligence, including, but not limited to, Acts of God, acts of civil or military authority, fires, riots, wars, embargoes, Internet disruptions, hacker attacks, or communications failures. Notwithstanding anything to the contrary contained herein, if either party is unable to perform hereunder for a period of thirty (30) consecutive days, then the other party may terminate this Agreement immediately without liability by ten (10) days"? written notice to the other.
22. Publicity And Audit Rights.
(a) You grant ActiveState the right to include Your name, trade name, trademark, service mark or logo in its Software promotional material. You may retract this grant at any time in writing to marcom@activestate.com, requesting Your name, trade name, trademark, service mark or logo be excluded from future releases of ActiveState Software promotional material. Requests cannot be complied with retroactively and may require up to thirty (30) days to process.
(b) If You entered into this Agreement on behalf of a Person, where such Person has more than 100 employees, if requested by ActiveState, You will furnish ActiveState with a signed certification (i) verifying that the Software is being used pursuant to the terms of this Agreement, including any user limitations and (ii) listing the locations where the Software is being used, the version(s) of the Software being used, how long and how the Software is being used, and the number computing devices and operating systems the Software is being used with. You agree to grant ActiveState reasonable access to Your site(s) and/or systems, upon prior notice during normal business hours, to audit the use of the Software. Any such audit shall be at ActiveState"?s expense.
23. Assignment. Except as expressly provided herein, neither this Agreement nor any rights granted hereunder, nor the use of any of the Software may be assigned, or otherwise transferred, in whole or in part, by You, without the prior written consent of ActiveState. Any permitted assignment by You under this Section will be conditional upon You delivering all copies of the Software to the transferee along with a copy of this Agreement, the transferee accepting the terms and conditions of this Agreement, and Your license to the Software terminating upon transfer. Any attempted assignment by You will be void and of no effect unless permitted by the foregoing. You acknowledge and agree that ActiveState may assign this Agreement to any third party without Your prior consent.
24. Enurement. This Agreement will enure to the benefit of the parties"? permitted successors and assigns.
25. Governing Law. This Agreement will be construed under the laws of the Province of British Columbia and the federal laws of Canada applicable therein, without regard to the conflict of law rules. The application of the United Nations Convention of Contracts for the International Sale of Goods and any local implementations thereof are expressly excluded. The parties agree that the Uniform Computer
Transactions Act or any version thereof, adopted by any jurisdiction, in any form ("UCITA"), will not apply to this Agreement, and to the extent that UCITA may be applicable, the parties agree to opt out of the applicability of UCITA pursuant to the opt-out provision(s) contained therein.
EXHIBIT A
Tcl/tk License Terms
This software is copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, and other parties. The following terms apply to all files associated with the software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the U.S. government, the Government shall have only "Restricted Rights" in the software and related documentation as defined in the Federal Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you are acquiring the software on behalf of the Department of Defense, the software shall be classified as "Commercial Computer Software" and the Government shall have only "Restricted Rights" as defined in Clause 252.227-7013 (c)(1) of DFARs. Notwithstanding the foregoing, the authors grant the U.S. Government and others acting in its behalf permission to use and distribute the software in accordance with the terms specified in this license.
全体的には、規約違反になる使い方をしない、
開発目的で使う、
そうでない場合はライセンスを得る、ということを言っているようです。
同意する場合は「I accept the terms in the License Agreement」にチェックを入れ、
押せるようになった「Next」ボタンを押します。
インストール先のパスを決めます。
画像にあるパスがデフォルトになっていますが、
私は SSD で容量が少ない C ドライブではなく、HDD で容量が多い D ドライブにしたいので、
「Change...」ボタンをクリックし、D:\Perl64\ に書き換えます。
ダイアログから「OK」ボタンでこの画面に戻って、
インストール先のパスが更新されていることを確認します。
パスはあらかじめ作成しておく必要はありません。
「Next」ボタンを押して、先に進めます。
インストールの準備完了です。
指定のパスにインストールされ、拡張子 pl と wpl との関連付けが行われる、と書かれています。
Install ボタンをクリックして、ActivePerl-5.28 のインストールを開始してください。
Perl は指定のパスに追加され、ファイル拡張子 .pl と .wpl との関連付けが作成されます。
「Install」ボタンにシールドのアイコンがあるので、管理者権限が必要です。
インストールを続けるには、「Install」ボタンをクリックします。
UAC、ユーザーアカウント制御画面のあと、インストールが始まります。
しばらくするとインストールが完了しました。
ActivePerl-5.28 は、ActiveState replacing PPM に変わる新しいコマンドライン・インターフェイス、
State Tool を使用して、システムへのインストールに成功しました。
コマンド・プロンプト画面で state help と入力して State Tool を試し、
何ができるかを知ってください。
「新しいコマンドライン インターフェイス State Tool」と書かれている部分が気になります。
コマンドプロンプトで "state help" と入力すると、何ができるかを知ることができるようですが、
インストールに成功していますので、今は試しません。
State Tool と書かれたリンクを開いてみると、
説明ページが開きました。
ここにリンクだけ残して、先に進みます。
その下にあるチェックボックスは「リリースノートをブラウザで開く」です。
「Open Release Notes in your browser.」にチェックを入れて、
「Finish」ボタンをクリックしてみます。
すると、インターネット上にある
「ActivePerl 5.28 Release Notes」
が開きました。
これも深く追求しないで、先に進みます。
インストールされた D:\Perl64 フォルダのサイズは 140 MB 弱でした。
IIS を設定する
投稿 November 9, 2020
インストールしただけでは、cgi を動作させることはできません。
.pl と .wpl は関連付けが行われたはずなので大丈夫かもしれませんが、
.cgi で動作させたいので、設定が必要です。
では、IIS を設定します。
IIS の CGI 機能はすでにインストールしています。
IIS のセットアップ時にインストールしなかった場合は、
「IIS 10 express をセットアップして localhost を使う」
にある手順に従って、追加でインストールしてください。
画面左下の Windows アイコン(スタートメニュー)から、
インストールされているプログラムのリストを下にスクロールさせ、
「Windows 管理ツール」を見つけます。
それをクリックで開き、その中にある「インターネット インフォメーション サービス(IIS)マネージャー」を起動します。
Windows アイコンの右に「ここに入力して検索」と書かれている入力欄があれば、
コルタナが有効になっていますので、ここに「iis」と入力して起動するほうが早いみたいです。
IIS マネージャーウィンドウの左側を見ると、このコンピュータの名前が選択されていますので、
このまま設定を変更すると、この PC 全体の設定になると思われます。
個別に設定するには、その PC 名を開き、さらに「サイト」を選びます。
「Default Web Site」が見つかりますので、それを選択するほうが安全みたいです。
選択できたら、画面右側の IIS 欄にある「ハンドラー マッピング」をダブルクリックして開きます。
この画面には、パス欄に関連付けられた拡張子が列挙され、それぞれそれを処理するプログラムがハンドラー欄に表示されているようです。
*.cgi がありませんので、このままでは拡張子 cgi は動作しないはずです。
.cgi を実行するプログラムを登録します。
まず、画面右上にある「スクリプト マップの追加...」をクリックします。
すると、「スクリプト マップの追加」ダイアログが表示されますので、
拡張子 cgi と ActivePerl を関連付けます。
上記のように、
要求パスの欄には「*.cgi」、
実行可能ファイルの欄には「D:\Perl64\bin\perl.exe "%s" %s」
と入力するといいようです。
もちろん、「実行可能ファイル」のパスは、実際にインストールしたパスにしてください。
デフォルトでは C ドライブです。
plファイルなども実行する場合は、要求パスを「*.pl」としたものを追加する必要があるようですが、
使用予定がないので試していません。
インストール時に関連付けができたはずなので、登録は不要かもしれません。
「要求の制限...」の中はいじることなく、
「OK」ボタンをクリックすると、確認メッセージが表示されました。
「はい」ボタンをクリックして完了します。
CGI が無事に追加されました。
cgi の動作をテストする
投稿 November 11, 2020
これで Perl の cgi がローカルで動作するようになったか、確認します。
IIS の使えるフォルダに、cgi プログラムを作成します。
私は IIS のデフォルトのパス C:\inetpub\wwwroot に
web サブフォルダを作成していますので、そこに cgi ファイルを作成します。
IIS をセットアップしたあとの初期状態では、フォルダ内に新しいファイルを作成することはできません。
「IIS 10 express をセットアップして localhost を使う」に書いた
「wwwroot 配下で編集可能にする」
のように、アクセスの許可を設定する必要があります。
C:\inetpub\wwwroot\web に、
test.cgi として、次のコードを保存しました。
念のためですが、単なるテキストファイルですので、いったん test.txt を作成し、
コードを入力した後、拡張子を cgi に変えれば OK です。
Unicode ではないプレーンテキストです。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "Hello Worlds!";
exit;
ブラウザに
http://localhost/web/test.cgi
のように入力して、エラーがでなければ OK です。
ローカルでテストするぶんには、1行目の perl のパス指定は不要みたいです。
実際のサーバーでは必要になりますので、サーバーにあわせたパスを記述しておきます。
最後の exit も、なくても大丈夫みたいです。
コードの終了を明示的に書いている、ということです。
もしブラウザに、localhost を使わず、
C://inetpub/wwwroot/web/test.cgi
のように入力しても、cgi は実行されず、
(ブラウザに依存するかも知れませんが)テキストファイルとして表示されてしまいます。
このあとは・・・
投稿 November 11, 2020
ここまでの設定により、ローカルの環境で、
Perl で書かれた cgi プログラムを実行できるようになりました。
このあとは、サーバーで実際に動作している、
ローカルファイルのアップロード cgi を実行させて、
さらにその先の処理に進められるかを確かめます。
結果はテスト後、追記予定です。
関連トピックス
IIS 10 express をセットアップして localhost を使う
Win10 Pro で、http://localhost/ を利用するため、IIS 10 をセットアップする手順について書いています。
サーバーにある CSV ファイルを読み込む
サーバーに置いた csv ファイル、すなわちテキストファイルを読み込んで処理する JavaScript プログラムについて、書いています。
その他のおすすめ
ウェブ開発に関するトピックは、「ウェブ開発トップ」にまとめられています。